@datagrok/eda 1.1.7 → 1.1.8
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/100.js +2 -0
- package/dist/111.js +2 -2
- package/dist/118.js +2 -0
- package/dist/146.js +2 -2
- package/dist/155.js +2 -2
- package/dist/221.js +2 -2
- package/dist/313.js +2 -0
- package/dist/355.js +2 -2
- package/dist/356.js +2 -2
- package/dist/44.js +2 -0
- package/dist/471.js +2 -0
- package/dist/489.js +3 -0
- package/dist/489.js.LICENSE.txt +51 -0
- package/dist/584.js +2 -2
- package/dist/604.js +2 -2
- package/dist/632.js +2 -2
- package/dist/645.js +2 -2
- package/dist/656.js +2 -0
- package/dist/664.js +2 -0
- package/dist/694.js +2 -2
- package/dist/727.js +2 -0
- package/dist/729.js +2 -2
- package/dist/796.js +2 -2
- package/dist/861.js +2 -0
- package/dist/93.js +2 -2
- package/dist/972.js +2 -0
- package/dist/package-test.js +2 -2
- package/dist/package.js +2 -2
- package/package.json +34 -4
- package/src/package.ts +45 -45
- package/dist/80.js +0 -2
package/dist/355.js
CHANGED
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
var eda;(()=>{"use strict";var e,r,t={
|
|
2
|
-
//# sourceMappingURL=data:application/json;charset=utf-8;base64,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bUJFLEtBQUtDLEtBQUtILEdBQzlEQSxFQUFtQkUsS0F2QkM1RSxJQUNuQixJQUFLaUIsRUFBVTZELEVBQWFDLEdBQVcvRSxFQUN2QyxJQUFJLElBQUlLLEtBQVl5RSxFQUNoQjFFLEVBQW9COEIsRUFBRTRDLEVBQWF6RSxLQUNyQ0QsRUFBb0JRLEVBQUVQLEdBQVl5RSxFQUFZekUsSUFJaEQsSUFERzBFLEdBQVNBLEVBQVEzRSxHQUNkYSxFQUFTTSxRQUNka0QsRUFBZ0J4RCxFQUFTK0QsT0FBUyxFQUNuQ0wsRUFBMkIzRSxFQUFLLEMsS1huQjdCUCxFQUFPVyxFQUFvQlMsRUFDL0JULEVBQW9CUyxFQUFJLElBQ2hCVCxFQUFvQm1DLEVBQUUsS0FBSzFDLEtBQUtKLEdZRHhDLElBQUlxQixFQUFzQlYsRUFBb0JTLEkiLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly9lZGEvd2VicGFjay9ydW50aW1lL2NodW5rIGxvYWRlZCIsIndlYnBhY2s6Ly9lZGEvd2VicGFjay9ydW50aW1lL3N0YXJ0dXAgY2h1bmsgZGVwZW5kZW5jaWVzIiwid2VicGFjazovL2VkYS8uL3dhc20vd29ya2Vycy9lcnJvcldvcmtlci5qcyIsIndlYnBhY2s6Ly9lZGEvd2VicGFjay9ib290c3RyYXAiLCJ3ZWJwYWNrOi8vZWRhL3dlYnBhY2svcnVudGltZS9hbWQgb3B0aW9ucyIsIndlYnBhY2s6Ly9lZGEvd2VicGFjay9ydW50aW1lL2RlZmluZSBwcm9wZXJ0eSBnZXR0ZXJzIiwid2VicGFjazovL2VkYS93ZWJwYWNrL3J1bnRpbWUvZW5zdXJlIGNodW5rIiwid2VicGFjazovL2VkYS93ZWJwYWNrL3J1bnRpbWUvZ2V0IGphdmFzY3JpcHQgY2h1bmsgZmlsZW5hbWUiLCJ3ZWJwYWNrOi8vZWRhL3dlYnBhY2svcnVudGltZS9nbG9iYWwiLCJ3ZWJwYWNrOi8vZWRhL3dlYnBhY2svcnVudGltZS9oYXJtb255IG1vZHVsZSBkZWNvcmF0b3IiLCJ3ZWJwYWNrOi8vZWRhL3dlYnBhY2svcnVudGltZS9oYXNPd25Qcm9wZXJ0eSBzaG9ydGhhbmQiLCJ3ZWJwYWNrOi8vZWRhL3dlYnBhY2svcnVudGltZS9wdWJsaWNQYXRoIiwid2VicGFjazovL2VkYS93ZWJwYWNrL3J1bnRpbWUvaW1wb3J0U2NyaXB0cyBjaHVuayBsb2FkaW5nIiwid2VicGFjazovL2VkYS93ZWJwYWNrL3N0YXJ0dXAiXSwic291cmNlc0NvbnRlbnQiOlsidmFyIGRlZmVycmVkID0gW107XG5fX3dlYnBhY2tfcmVxdWlyZV9fLk8gPSAocmVzdWx0LCBjaHVua0lkcywgZm4sIHByaW9yaXR5KSA9PiB7XG5cdGlmKGNodW5rSWRzKSB7XG5cdFx0cHJpb3JpdHkgPSBwcmlvcml0eSB8fCAwO1xuXHRcdGZvcih2YXIgaSA9IGRlZmVycmVkLmxlbmd0aDsgaSA+IDAgJiYgZGVmZXJyZWRbaSAtIDFdWzJdID4gcHJpb3JpdHk7IGktLSkgZGVmZXJyZWRbaV0gPSBkZWZlcnJlZFtpIC0gMV07XG5cdFx0ZGVmZXJyZWRbaV0gPSBbY2h1bmtJZHMsIGZuLCBwcmlvcml0eV07XG5cdFx0cmV0dXJuO1xuXHR9XG5cdHZhciBub3RGdWxmaWxsZWQgPSBJbmZpbml0eTtcblx0Zm9yICh2YXIgaSA9IDA7IGkgPCBkZWZlcnJlZC5sZW5ndGg7IGkrKykge1xuXHRcdHZhciBbY2h1bmtJZHMsIGZuLCBwcmlvcml0eV0gPSBkZWZlcnJlZFtpXTtcblx0XHR2YXIgZnVsZmlsbGVkID0gdHJ1ZTtcblx0XHRmb3IgKHZhciBqID0gMDsgaiA8IGNodW5rSWRzLmxlbmd0aDsgaisrKSB7XG5cdFx0XHRpZiAoKHByaW9yaXR5ICYgMSA9PT0gMCB8fCBub3RGdWxmaWxsZWQgPj0gcHJpb3JpdHkpICYmIE9iamVjdC5rZXlzKF9fd2VicGFja19yZXF1aXJlX18uTykuZXZlcnkoKGtleSkgPT4gKF9fd2VicGFja19yZXF1aXJlX18uT1trZXldKGNodW5rSWRzW2pdKSkpKSB7XG5cdFx0XHRcdGNodW5rSWRzLnNwbGljZShqLS0sIDEpO1xuXHRcdFx0fSBlbHNlIHtcblx0XHRcdFx0ZnVsZmlsbGVkID0gZmFsc2U7XG5cdFx0XHRcdGlmKHByaW9yaXR5IDwgbm90RnVsZmlsbGVkKSBub3RGdWxmaWxsZWQgPSBwcmlvcml0eTtcblx0XHRcdH1cblx0XHR9XG5cdFx0aWYoZnVsZmlsbGVkKSB7XG5cdFx0XHRkZWZlcnJlZC5zcGxpY2UoaS0tLCAxKVxuXHRcdFx0dmFyIHIgPSBmbigpO1xuXHRcdFx0aWYgKHIgIT09IHVuZGVmaW5lZCkgcmVzdWx0ID0gcjtcblx0XHR9XG5cdH1cblx0cmV0dXJuIHJlc3VsdDtcbn07IiwidmFyIG5leHQgPSBfX3dlYnBhY2tfcmVxdWlyZV9fLng7XG5fX3dlYnBhY2tfcmVxdWlyZV9fLnggPSAoKSA9PiB7XG5cdHJldHVybiBfX3dlYnBhY2tfcmVxdWlyZV9fLmUoMTQ2KS50aGVuKG5leHQpO1xufTsiLCIvLyBUaGUgZm9sbG93aW5nIGNvZGUgaXMgZ2VuZXJhdGVkIGF1dG9tYXRpY2FsbHkuXG5cbmltcG9ydCB7ZXhwb3J0RURBfSBmcm9tICcuLi8uLi93YXNtL0VEQUZvcldlYldvcmtlcic7XG5pbXBvcnQge2NwcFdyYXBwZXJ9IGZyb20gJy4uLy4uL3dhc20vY2FsbFdhc21Gb3JXZWJXb3JrZXIuanMnO1xuXG5vbm1lc3NhZ2UgPSBhc3luYyBmdW5jdGlvbiAoZXZ0KSB7XG4gIGV4cG9ydEVEQSgpLnRoZW4obW9kdWxlID0+IFxuICAgIHtcbiAgICAgIGxldCBhcmdzID0gZXZ0LmRhdGE7XG4gICAgICBsZXQgcmVzdWx0ID0gY3BwV3JhcHBlcihtb2R1bGUsIGFyZ3MsICdlcnJvcicsICdudW1iZXInKTtcbiAgICAgIHBvc3RNZXNzYWdlKHsnY2FsbFJlc3VsdCc6IHJlc3VsdCwgJ2FyZ3MnOiBhcmdzfSk7XG4gICAgfSApXG59IiwiLy8gVGhlIG1vZHVsZSBjYWNoZVxudmFyIF9fd2VicGFja19tb2R1bGVfY2FjaGVfXyA9IHt9O1xuXG4vLyBUaGUgcmVxdWlyZSBmdW5jdGlvblxuZnVuY3Rpb24gX193ZWJwYWNrX3JlcXVpcmVfXyhtb2R1bGVJZCkge1xuXHQvLyBDaGVjayBpZiBtb2R1bGUgaXMgaW4gY2FjaGVcblx0dmFyIGNhY2hlZE1vZHVsZSA9IF9fd2VicGFja19tb2R1bGVfY2FjaGVfX1ttb2R1bGVJZF07XG5cdGlmIChjYWNoZWRNb2R1bGUgIT09IHVuZGVmaW5lZCkge1xuXHRcdHJldHVybiBjYWNoZWRNb2R1bGUuZXhwb3J0cztcblx0fVxuXHQvLyBDcmVhdGUgYSBuZXcgbW9kdWxlIChhbmQgcHV0IGl0IGludG8gdGhlIGNhY2hlKVxuXHR2YXIgbW9kdWxlID0gX193ZWJwYWNrX21vZHVsZV9jYWNoZV9fW21vZHVsZUlkXSA9IHtcblx0XHRpZDogbW9kdWxlSWQsXG5cdFx0bG9hZGVkOiBmYWxzZSxcblx0XHRleHBvcnRzOiB7fVxuXHR9O1xuXG5cdC8vIEV4ZWN1dGUgdGhlIG1vZHVsZSBmdW5jdGlvblxuXHRfX3dlYnBhY2tfbW9kdWxlc19fW21vZHVsZUlkXShtb2R1bGUsIG1vZHVsZS5leHBvcnRzLCBfX3dlYnBhY2tfcmVxdWlyZV9fKTtcblxuXHQvLyBGbGFnIHRoZSBtb2R1bGUgYXMgbG9hZGVkXG5cdG1vZHVsZS5sb2FkZWQgPSB0cnVlO1xuXG5cdC8vIFJldHVybiB0aGUgZXhwb3J0cyBvZiB0aGUgbW9kdWxlXG5cdHJldHVybiBtb2R1bGUuZXhwb3J0cztcbn1cblxuLy8gZXhwb3NlIHRoZSBtb2R1bGVzIG9iamVjdCAoX193ZWJwYWNrX21vZHVsZXNfXylcbl9fd2VicGFja19yZXF1aXJlX18ubSA9IF9fd2VicGFja19tb2R1bGVzX187XG5cbi8vIHRoZSBzdGFydHVwIGZ1bmN0aW9uXG5fX3dlYnBhY2tfcmVxdWlyZV9fLnggPSAoKSA9PiB7XG5cdC8vIExvYWQgZW50cnkgbW9kdWxlIGFuZCByZXR1cm4gZXhwb3J0c1xuXHQvLyBUaGlzIGVudHJ5IG1vZHVsZSBkZXBlbmRzIG9uIG90aGVyIGxvYWRlZCBjaHVua3MgYW5kIGV4ZWN1dGlvbiBuZWVkIHRvIGJlIGRlbGF5ZWRcblx0dmFyIF9fd2VicGFja19leHBvcnRzX18gPSBfX3dlYnBhY2tfcmVxdWlyZV9fLk8odW5kZWZpbmVkLCBbMTQ2XSwgKCkgPT4gKF9fd2VicGFja19yZXF1aXJlX18oMzU1KSkpXG5cdF9fd2VicGFja19leHBvcnRzX18gPSBfX3dlYnBhY2tfcmVxdWlyZV9fLk8oX193ZWJwYWNrX2V4cG9ydHNfXyk7XG5cdHJldHVybiBfX3dlYnBhY2tfZXhwb3J0c19fO1xufTtcblxuIiwiX193ZWJwYWNrX3JlcXVpcmVfXy5hbWRPID0ge307IiwiLy8gZGVmaW5lIGdldHRlciBmdW5jdGlvbnMgZm9yIGhhcm1vbnkgZXhwb3J0c1xuX193ZWJwYWNrX3JlcXVpcmVfXy5kID0gKGV4cG9ydHMsIGRlZmluaXRpb24pID0+IHtcblx0Zm9yKHZhciBrZXkgaW4gZGVmaW5pdGlvbikge1xuXHRcdGlmKF9fd2VicGFja19yZXF1aXJlX18ubyhkZWZpbml0aW9uLCBrZXkpICYmICFfX3dlYnBhY2tfcmVxdWlyZV9fLm8oZXhwb3J0cywga2V5KSkge1xuXHRcdFx0T2JqZWN0LmRlZmluZVByb3BlcnR5KGV4cG9ydHMsIGtleSwgeyBlbnVtZXJhYmxlOiB0cnVlLCBnZXQ6IGRlZmluaXRpb25ba2V5XSB9KTtcblx0XHR9XG5cdH1cbn07IiwiX193ZWJwYWNrX3JlcXVpcmVfXy5mID0ge307XG4vLyBUaGlzIGZpbGUgY29udGFpbnMgb25seSB0aGUgZW50cnkgY2h1bmsuXG4vLyBUaGUgY2h1bmsgbG9hZGluZyBmdW5jdGlvbiBmb3IgYWRkaXRpb25hbCBjaHVua3Ncbl9fd2VicGFja19yZXF1aXJlX18uZSA9IChjaHVua0lkKSA9PiB7XG5cdHJldHVybiBQcm9taXNlLmFsbChPYmplY3Qua2V5cyhfX3dlYnBhY2tfcmVxdWlyZV9fLmYpLnJlZHVjZSgocHJvbWlzZXMsIGtleSkgPT4ge1xuXHRcdF9fd2VicGFja19yZXF1aXJlX18uZltrZXldKGNodW5rSWQsIHByb21pc2VzKTtcblx0XHRyZXR1cm4gcHJvbWlzZXM7XG5cdH0sIFtdKSk7XG59OyIsIi8vIFRoaXMgZnVuY3Rpb24gYWxsb3cgdG8gcmVmZXJlbmNlIGFzeW5jIGNodW5rcyBhbmQgc2libGluZyBjaHVua3MgZm9yIHRoZSBlbnRyeXBvaW50XG5fX3dlYnBhY2tfcmVxdWlyZV9fLnUgPSAoY2h1bmtJZCkgPT4ge1xuXHQvLyByZXR1cm4gdXJsIGZvciBmaWxlbmFtZXMgYmFzZWQgb24gdGVtcGxhdGVcblx0cmV0dXJuIFwiXCIgKyBjaHVua0lkICsgXCIuanNcIjtcbn07IiwiX193ZWJwYWNrX3JlcXVpcmVfXy5nID0gKGZ1bmN0aW9uKCkge1xuXHRpZiAodHlwZW9mIGdsb2JhbFRoaXMgPT09ICdvYmplY3QnKSByZXR1cm4gZ2xvYmFsVGhpcztcblx0dHJ5IHtcblx0XHRyZXR1cm4gdGhpcyB8fCBuZXcgRnVuY3Rpb24oJ3JldHVybiB0aGlzJykoKTtcblx0fSBjYXRjaCAoZSkge1xuXHRcdGlmICh0eXBlb2Ygd2luZG93ID09PSAnb2JqZWN0JykgcmV0dXJuIHdpbmRvdztcblx0fVxufSkoKTsiLCJfX3dlYnBhY2tfcmVxdWlyZV9fLmhtZCA9IChtb2R1bGUpID0+IHtcblx0bW9kdWxlID0gT2JqZWN0LmNyZWF0ZShtb2R1bGUpO1xuXHRpZiAoIW1vZHVsZS5jaGlsZHJlbikgbW9kdWxlLmNoaWxkcmVuID0gW107XG5cdE9iamVjdC5kZWZpbmVQcm9wZXJ0eShtb2R1bGUsICdleHBvcnRzJywge1xuXHRcdGVudW1lcmFibGU6IHRydWUsXG5cdFx0c2V0OiAoKSA9PiB7XG5cdFx0XHR0aHJvdyBuZXcgRXJyb3IoJ0VTIE1vZHVsZXMgbWF5IG5vdCBhc3NpZ24gbW9kdWxlLmV4cG9ydHMgb3IgZXhwb3J0cy4qLCBVc2UgRVNNIGV4cG9ydCBzeW50YXgsIGluc3RlYWQ6ICcgKyBtb2R1bGUuaWQpO1xuXHRcdH1cblx0fSk7XG5cdHJldHVybiBtb2R1bGU7XG59OyIsIl9fd2VicGFja19yZXF1aXJlX18ubyA9IChvYmosIHByb3ApID0+IChPYmplY3QucHJvdG90eXBlLmhhc093blByb3BlcnR5LmNhbGwob2JqLCBwcm9wKSkiLCJ2YXIgc2NyaXB0VXJsO1xuaWYgKF9fd2VicGFja19yZXF1aXJlX18uZy5pbXBvcnRTY3JpcHRzKSBzY3JpcHRVcmwgPSBfX3dlYnBhY2tfcmVxdWlyZV9fLmcubG9jYXRpb24gKyBcIlwiO1xudmFyIGRvY3VtZW50ID0gX193ZWJwYWNrX3JlcXVpcmVfXy5nLmRvY3VtZW50O1xuaWYgKCFzY3JpcHRVcmwgJiYgZG9jdW1lbnQpIHtcblx0aWYgKGRvY3VtZW50LmN1cnJlbnRTY3JpcHQpXG5cdFx0c2NyaXB0VXJsID0gZG9jdW1lbnQuY3VycmVudFNjcmlwdC5zcmM7XG5cdGlmICghc2NyaXB0VXJsKSB7XG5cdFx0dmFyIHNjcmlwdHMgPSBkb2N1bWVudC5nZXRFbGVtZW50c0J5VGFnTmFtZShcInNjcmlwdFwiKTtcblx0XHRpZihzY3JpcHRzLmxlbmd0aCkge1xuXHRcdFx0dmFyIGkgPSBzY3JpcHRzLmxlbmd0aCAtIDE7XG5cdFx0XHR3aGlsZSAoaSA+IC0xICYmICFzY3JpcHRVcmwpIHNjcmlwdFVybCA9IHNjcmlwdHNbaS0tXS5zcmM7XG5cdFx0fVxuXHR9XG59XG4vLyBXaGVuIHN1cHBvcnRpbmcgYnJvd3NlcnMgd2hlcmUgYW4gYXV0b21hdGljIHB1YmxpY1BhdGggaXMgbm90IHN1cHBvcnRlZCB5b3UgbXVzdCBzcGVjaWZ5IGFuIG91dHB1dC5wdWJsaWNQYXRoIG1hbnVhbGx5IHZpYSBjb25maWd1cmF0aW9uXG4vLyBvciBwYXNzIGFuIGVtcHR5IHN0cmluZyAoXCJcIikgYW5kIHNldCB0aGUgX193ZWJwYWNrX3B1YmxpY19wYXRoX18gdmFyaWFibGUgZnJvbSB5b3VyIGNvZGUgdG8gdXNlIHlvdXIgb3duIGxvZ2ljLlxuaWYgKCFzY3JpcHRVcmwpIHRocm93IG5ldyBFcnJvcihcIkF1dG9tYXRpYyBwdWJsaWNQYXRoIGlzIG5vdCBzdXBwb3J0ZWQgaW4gdGhpcyBicm93c2VyXCIpO1xuc2NyaXB0VXJsID0gc2NyaXB0VXJsLnJlcGxhY2UoLyMuKiQvLCBcIlwiKS5yZXBsYWNlKC9cXD8uKiQvLCBcIlwiKS5yZXBsYWNlKC9cXC9bXlxcL10rJC8sIFwiL1wiKTtcbl9fd2VicGFja19yZXF1aXJlX18ucCA9IHNjcmlwdFVybDsiLCJfX3dlYnBhY2tfcmVxdWlyZV9fLmIgPSBzZWxmLmxvY2F0aW9uICsgXCJcIjtcblxuLy8gb2JqZWN0IHRvIHN0b3JlIGxvYWRlZCBjaHVua3Ncbi8vIFwiMVwiIG1lYW5zIFwiYWxyZWFkeSBsb2FkZWRcIlxudmFyIGluc3RhbGxlZENodW5rcyA9IHtcblx0MzU1OiAxXG59O1xuXG4vLyBpbXBvcnRTY3JpcHRzIGNodW5rIGxvYWRpbmdcbnZhciBpbnN0YWxsQ2h1bmsgPSAoZGF0YSkgPT4ge1xuXHR2YXIgW2NodW5rSWRzLCBtb3JlTW9kdWxlcywgcnVudGltZV0gPSBkYXRhO1xuXHRmb3IodmFyIG1vZHVsZUlkIGluIG1vcmVNb2R1bGVzKSB7XG5cdFx0aWYoX193ZWJwYWNrX3JlcXVpcmVfXy5vKG1vcmVNb2R1bGVzLCBtb2R1bGVJZCkpIHtcblx0XHRcdF9fd2VicGFja19yZXF1aXJlX18ubVttb2R1bGVJZF0gPSBtb3JlTW9kdWxlc1ttb2R1bGVJZF07XG5cdFx0fVxuXHR9XG5cdGlmKHJ1bnRpbWUpIHJ1bnRpbWUoX193ZWJwYWNrX3JlcXVpcmVfXyk7XG5cdHdoaWxlKGNodW5rSWRzLmxlbmd0aClcblx0XHRpbnN0YWxsZWRDaHVua3NbY2h1bmtJZHMucG9wKCldID0gMTtcblx0cGFyZW50Q2h1bmtMb2FkaW5nRnVuY3Rpb24oZGF0YSk7XG59O1xuX193ZWJwYWNrX3JlcXVpcmVfXy5mLmkgPSAoY2h1bmtJZCwgcHJvbWlzZXMpID0+IHtcblx0Ly8gXCIxXCIgaXMgdGhlIHNpZ25hbCBmb3IgXCJhbHJlYWR5IGxvYWRlZFwiXG5cdGlmKCFpbnN0YWxsZWRDaHVua3NbY2h1bmtJZF0pIHtcblx0XHRpZih0cnVlKSB7IC8vIGFsbCBjaHVua3MgaGF2ZSBKU1xuXHRcdFx0aW1wb3J0U2NyaXB0cyhfX3dlYnBhY2tfcmVxdWlyZV9fLnAgKyBfX3dlYnBhY2tfcmVxdWlyZV9fLnUoY2h1bmtJZCkpO1xuXHRcdH1cblx0fVxufTtcblxudmFyIGNodW5rTG9hZGluZ0dsb2JhbCA9IHNlbGZbXCJ3ZWJwYWNrQ2h1bmtlZGFcIl0gPSBzZWxmW1wid2VicGFja0NodW5rZWRhXCJdIHx8IFtdO1xudmFyIHBhcmVudENodW5rTG9hZGluZ0Z1bmN0aW9uID0gY2h1bmtMb2FkaW5nR2xvYmFsLnB1c2guYmluZChjaHVua0xvYWRpbmdHbG9iYWwpO1xuY2h1bmtMb2FkaW5nR2xvYmFsLnB1c2ggPSBpbnN0YWxsQ2h1bms7XG5cbi8vIG5vIEhNUlxuXG4vLyBubyBITVIgbWFuaWZlc3QiLCIvLyBydW4gc3RhcnR1cFxudmFyIF9fd2VicGFja19leHBvcnRzX18gPSBfX3dlYnBhY2tfcmVxdWlyZV9fLngoKTtcbiJdLCJuYW1lcyI6WyJkZWZlcnJlZCIsIm5leHQiLCJvbm1lc3NhZ2UiLCJhc3luYyIsImV2dCIsInRoZW4iLCJtb2R1bGUiLCJhcmdzIiwiZGF0YSIsInJlc3VsdCIsInBvc3RNZXNzYWdlIiwiX193ZWJwYWNrX21vZHVsZV9jYWNoZV9fIiwiX193ZWJwYWNrX3JlcXVpcmVfXyIsIm1vZHVsZUlkIiwiY2FjaGVkTW9kdWxlIiwidW5kZWZpbmVkIiwiZXhwb3J0cyIsImlkIiwibG9hZGVkIiwiX193ZWJwYWNrX21vZHVsZXNfXyIsIm0iLCJ4IiwiX193ZWJwYWNrX2V4cG9ydHNfXyIsIk8iLCJhbWRPIiwiY2h1bmtJZHMiLCJmbiIsInByaW9yaXR5Iiwibm90RnVsZmlsbGVkIiwiSW5maW5pdHkiLCJpIiwibGVuZ3RoIiwiZnVsZmlsbGVkIiwiaiIsIk9iamVjdCIsImtleXMiLCJldmVyeSIsImtleSIsInNwbGljZSIsInIiLCJkIiwiZGVmaW5pdGlvbiIsIm8iLCJkZWZpbmVQcm9wZXJ0eSIsImVudW1lcmFibGUiLCJnZXQiLCJmIiwiZSIsImNodW5rSWQiLCJQcm9taXNlIiwiYWxsIiwicmVkdWNlIiwicHJvbWlzZXMiLCJ1IiwiZyIsImdsb2JhbFRoaXMiLCJ0aGlzIiwiRnVuY3Rpb24iLCJ3aW5kb3ciLCJobWQiLCJjcmVhdGUiLCJjaGlsZHJlbiIsInNldCIsIkVycm9yIiwib2JqIiwicHJvcCIsInByb3RvdHlwZSIsImhhc093blByb3BlcnR5IiwiY2FsbCIsInNjcmlwdFVybCIsImltcG9ydFNjcmlwdHMiLCJsb2NhdGlvbiIsImRvY3VtZW50IiwiY3VycmVudFNjcmlwdCIsInNyYyIsInNjcmlwdHMiLCJnZXRFbGVtZW50c0J5VGFnTmFtZSIsInJlcGxhY2UiLCJwIiwiYiIsInNlbGYiLCJpbnN0YWxsZWRDaHVua3MiLCJjaHVua0xvYWRpbmdHbG9iYWwiLCJwYXJlbnRDaHVua0xvYWRpbmdGdW5jdGlvbiIsInB1c2giLCJiaW5kIiwibW9yZU1vZHVsZXMiLCJydW50aW1lIiwicG9wIl0sInNvdXJjZVJvb3QiOiIifQ==
|
|
1
|
+
var eda;(()=>{"use strict";var e,r,t={9355:(e,r,t)=>{var o=t(2786),a=t(2128);onmessage=async function(e){(0,o.P)().then((r=>{let t=e.data,o=(0,a.Gz)(r,t,"error","number");postMessage({callResult:o,args:t})}))}}},o={};function a(e){var r=o[e];if(void 0!==r)return r.exports;var n=o[e]={id:e,loaded:!1,exports:{}};return t[e](n,n.exports,a),n.loaded=!0,n.exports}a.m=t,a.x=()=>{var e=a.O(void 0,[146],(()=>a(9355)));return a.O(e)},a.amdO={},e=[],a.O=(r,t,o,n)=>{if(!t){var i=1/0;for(l=0;l<e.length;l++){for(var[t,o,n]=e[l],s=!0,c=0;c<t.length;c++)(!1&n||i>=n)&&Object.keys(a.O).every((e=>a.O[e](t[c])))?t.splice(c--,1):(s=!1,n<i&&(i=n));if(s){e.splice(l--,1);var p=o();void 0!==p&&(r=p)}}return r}n=n||0;for(var l=e.length;l>0&&e[l-1][2]>n;l--)e[l]=e[l-1];e[l]=[t,o,n]},a.d=(e,r)=>{for(var t in r)a.o(r,t)&&!a.o(e,t)&&Object.defineProperty(e,t,{enumerable:!0,get:r[t]})},a.f={},a.e=e=>Promise.all(Object.keys(a.f).reduce(((r,t)=>(a.f[t](e,r),r)),[])),a.u=e=>e+".js",a.g=function(){if("object"==typeof globalThis)return globalThis;try{return this||new Function("return this")()}catch(e){if("object"==typeof window)return window}}(),a.hmd=e=>((e=Object.create(e)).children||(e.children=[]),Object.defineProperty(e,"exports",{enumerable:!0,set:()=>{throw new Error("ES Modules may not assign module.exports or exports.*, Use ESM export syntax, instead: "+e.id)}}),e),a.o=(e,r)=>Object.prototype.hasOwnProperty.call(e,r),(()=>{var e;a.g.importScripts&&(e=a.g.location+"");var r=a.g.document;if(!e&&r&&(r.currentScript&&(e=r.currentScript.src),!e)){var t=r.getElementsByTagName("script");if(t.length)for(var o=t.length-1;o>-1&&!e;)e=t[o--].src}if(!e)throw new Error("Automatic publicPath is not supported in this browser");e=e.replace(/#.*$/,"").replace(/\?.*$/,"").replace(/\/[^\/]+$/,"/"),a.p=e})(),(()=>{a.b=self.location+"";var e={355:1};a.f.i=(r,t)=>{e[r]||importScripts(a.p+a.u(r))};var r=self.webpackChunkeda=self.webpackChunkeda||[],t=r.push.bind(r);r.push=r=>{var[o,n,i]=r;for(var s in n)a.o(n,s)&&(a.m[s]=n[s]);for(i&&i(a);o.length;)e[o.pop()]=1;t(r)}})(),r=a.x,a.x=()=>a.e(146).then(r);var n=a.x();eda=n})();
|
|
2
|
+
//# sourceMappingURL=data:application/json;charset=utf-8;base64,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bUJFLEtBQUtDLEtBQUtILEdBQzlEQSxFQUFtQkUsS0F2QkM1RSxJQUNuQixJQUFLaUIsRUFBVTZELEVBQWFDLEdBQVcvRSxFQUN2QyxJQUFJLElBQUlLLEtBQVl5RSxFQUNoQjFFLEVBQW9COEIsRUFBRTRDLEVBQWF6RSxLQUNyQ0QsRUFBb0JRLEVBQUVQLEdBQVl5RSxFQUFZekUsSUFJaEQsSUFERzBFLEdBQVNBLEVBQVEzRSxHQUNkYSxFQUFTTSxRQUNka0QsRUFBZ0J4RCxFQUFTK0QsT0FBUyxFQUNuQ0wsRUFBMkIzRSxFQUFLLEMsS1huQjdCUCxFQUFPVyxFQUFvQlMsRUFDL0JULEVBQW9CUyxFQUFJLElBQ2hCVCxFQUFvQm1DLEVBQUUsS0FBSzFDLEtBQUtKLEdZRHhDLElBQUlxQixFQUFzQlYsRUFBb0JTLEkiLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly9lZGEvd2VicGFjay9ydW50aW1lL2NodW5rIGxvYWRlZCIsIndlYnBhY2s6Ly9lZGEvd2VicGFjay9ydW50aW1lL3N0YXJ0dXAgY2h1bmsgZGVwZW5kZW5jaWVzIiwid2VicGFjazovL2VkYS8uL3dhc20vd29ya2Vycy9lcnJvcldvcmtlci5qcyIsIndlYnBhY2s6Ly9lZGEvd2VicGFjay9ib290c3RyYXAiLCJ3ZWJwYWNrOi8vZWRhL3dlYnBhY2svcnVudGltZS9hbWQgb3B0aW9ucyIsIndlYnBhY2s6Ly9lZGEvd2VicGFjay9ydW50aW1lL2RlZmluZSBwcm9wZXJ0eSBnZXR0ZXJzIiwid2VicGFjazovL2VkYS93ZWJwYWNrL3J1bnRpbWUvZW5zdXJlIGNodW5rIiwid2VicGFjazovL2VkYS93ZWJwYWNrL3J1bnRpbWUvZ2V0IGphdmFzY3JpcHQgY2h1bmsgZmlsZW5hbWUiLCJ3ZWJwYWNrOi8vZWRhL3dlYnBhY2svcnVudGltZS9nbG9iYWwiLCJ3ZWJwYWNrOi8vZWRhL3dlYnBhY2svcnVudGltZS9oYXJtb255IG1vZHVsZSBkZWNvcmF0b3IiLCJ3ZWJwYWNrOi8vZWRhL3dlYnBhY2svcnVudGltZS9oYXNPd25Qcm9wZXJ0eSBzaG9ydGhhbmQiLCJ3ZWJwYWNrOi8vZWRhL3dlYnBhY2svcnVudGltZS9wdWJsaWNQYXRoIiwid2VicGFjazovL2VkYS93ZWJwYWNrL3J1bnRpbWUvaW1wb3J0U2NyaXB0cyBjaHVuayBsb2FkaW5nIiwid2VicGFjazovL2VkYS93ZWJwYWNrL3N0YXJ0dXAiXSwic291cmNlc0NvbnRlbnQiOlsidmFyIGRlZmVycmVkID0gW107XG5fX3dlYnBhY2tfcmVxdWlyZV9fLk8gPSAocmVzdWx0LCBjaHVua0lkcywgZm4sIHByaW9yaXR5KSA9PiB7XG5cdGlmKGNodW5rSWRzKSB7XG5cdFx0cHJpb3JpdHkgPSBwcmlvcml0eSB8fCAwO1xuXHRcdGZvcih2YXIgaSA9IGRlZmVycmVkLmxlbmd0aDsgaSA+IDAgJiYgZGVmZXJyZWRbaSAtIDFdWzJdID4gcHJpb3JpdHk7IGktLSkgZGVmZXJyZWRbaV0gPSBkZWZlcnJlZFtpIC0gMV07XG5cdFx0ZGVmZXJyZWRbaV0gPSBbY2h1bmtJZHMsIGZuLCBwcmlvcml0eV07XG5cdFx0cmV0dXJuO1xuXHR9XG5cdHZhciBub3RGdWxmaWxsZWQgPSBJbmZpbml0eTtcblx0Zm9yICh2YXIgaSA9IDA7IGkgPCBkZWZlcnJlZC5sZW5ndGg7IGkrKykge1xuXHRcdHZhciBbY2h1bmtJZHMsIGZuLCBwcmlvcml0eV0gPSBkZWZlcnJlZFtpXTtcblx0XHR2YXIgZnVsZmlsbGVkID0gdHJ1ZTtcblx0XHRmb3IgKHZhciBqID0gMDsgaiA8IGNodW5rSWRzLmxlbmd0aDsgaisrKSB7XG5cdFx0XHRpZiAoKHByaW9yaXR5ICYgMSA9PT0gMCB8fCBub3RGdWxmaWxsZWQgPj0gcHJpb3JpdHkpICYmIE9iamVjdC5rZXlzKF9fd2VicGFja19yZXF1aXJlX18uTykuZXZlcnkoKGtleSkgPT4gKF9fd2VicGFja19yZXF1aXJlX18uT1trZXldKGNodW5rSWRzW2pdKSkpKSB7XG5cdFx0XHRcdGNodW5rSWRzLnNwbGljZShqLS0sIDEpO1xuXHRcdFx0fSBlbHNlIHtcblx0XHRcdFx0ZnVsZmlsbGVkID0gZmFsc2U7XG5cdFx0XHRcdGlmKHByaW9yaXR5IDwgbm90RnVsZmlsbGVkKSBub3RGdWxmaWxsZWQgPSBwcmlvcml0eTtcblx0XHRcdH1cblx0XHR9XG5cdFx0aWYoZnVsZmlsbGVkKSB7XG5cdFx0XHRkZWZlcnJlZC5zcGxpY2UoaS0tLCAxKVxuXHRcdFx0dmFyIHIgPSBmbigpO1xuXHRcdFx0aWYgKHIgIT09IHVuZGVmaW5lZCkgcmVzdWx0ID0gcjtcblx0XHR9XG5cdH1cblx0cmV0dXJuIHJlc3VsdDtcbn07IiwidmFyIG5leHQgPSBfX3dlYnBhY2tfcmVxdWlyZV9fLng7XG5fX3dlYnBhY2tfcmVxdWlyZV9fLnggPSAoKSA9PiB7XG5cdHJldHVybiBfX3dlYnBhY2tfcmVxdWlyZV9fLmUoMTQ2KS50aGVuKG5leHQpO1xufTsiLCIvLyBUaGUgZm9sbG93aW5nIGNvZGUgaXMgZ2VuZXJhdGVkIGF1dG9tYXRpY2FsbHkuXG5cbmltcG9ydCB7ZXhwb3J0RURBfSBmcm9tICcuLi8uLi93YXNtL0VEQUZvcldlYldvcmtlcic7XG5pbXBvcnQge2NwcFdyYXBwZXJ9IGZyb20gJy4uLy4uL3dhc20vY2FsbFdhc21Gb3JXZWJXb3JrZXIuanMnO1xuXG5vbm1lc3NhZ2UgPSBhc3luYyBmdW5jdGlvbiAoZXZ0KSB7XG4gIGV4cG9ydEVEQSgpLnRoZW4obW9kdWxlID0+IFxuICAgIHtcbiAgICAgIGxldCBhcmdzID0gZXZ0LmRhdGE7XG4gICAgICBsZXQgcmVzdWx0ID0gY3BwV3JhcHBlcihtb2R1bGUsIGFyZ3MsICdlcnJvcicsICdudW1iZXInKTtcbiAgICAgIHBvc3RNZXNzYWdlKHsnY2FsbFJlc3VsdCc6IHJlc3VsdCwgJ2FyZ3MnOiBhcmdzfSk7XG4gICAgfSApXG59IiwiLy8gVGhlIG1vZHVsZSBjYWNoZVxudmFyIF9fd2VicGFja19tb2R1bGVfY2FjaGVfXyA9IHt9O1xuXG4vLyBUaGUgcmVxdWlyZSBmdW5jdGlvblxuZnVuY3Rpb24gX193ZWJwYWNrX3JlcXVpcmVfXyhtb2R1bGVJZCkge1xuXHQvLyBDaGVjayBpZiBtb2R1bGUgaXMgaW4gY2FjaGVcblx0dmFyIGNhY2hlZE1vZHVsZSA9IF9fd2VicGFja19tb2R1bGVfY2FjaGVfX1ttb2R1bGVJZF07XG5cdGlmIChjYWNoZWRNb2R1bGUgIT09IHVuZGVmaW5lZCkge1xuXHRcdHJldHVybiBjYWNoZWRNb2R1bGUuZXhwb3J0cztcblx0fVxuXHQvLyBDcmVhdGUgYSBuZXcgbW9kdWxlIChhbmQgcHV0IGl0IGludG8gdGhlIGNhY2hlKVxuXHR2YXIgbW9kdWxlID0gX193ZWJwYWNrX21vZHVsZV9jYWNoZV9fW21vZHVsZUlkXSA9IHtcblx0XHRpZDogbW9kdWxlSWQsXG5cdFx0bG9hZGVkOiBmYWxzZSxcblx0XHRleHBvcnRzOiB7fVxuXHR9O1xuXG5cdC8vIEV4ZWN1dGUgdGhlIG1vZHVsZSBmdW5jdGlvblxuXHRfX3dlYnBhY2tfbW9kdWxlc19fW21vZHVsZUlkXShtb2R1bGUsIG1vZHVsZS5leHBvcnRzLCBfX3dlYnBhY2tfcmVxdWlyZV9fKTtcblxuXHQvLyBGbGFnIHRoZSBtb2R1bGUgYXMgbG9hZGVkXG5cdG1vZHVsZS5sb2FkZWQgPSB0cnVlO1xuXG5cdC8vIFJldHVybiB0aGUgZXhwb3J0cyBvZiB0aGUgbW9kdWxlXG5cdHJldHVybiBtb2R1bGUuZXhwb3J0cztcbn1cblxuLy8gZXhwb3NlIHRoZSBtb2R1bGVzIG9iamVjdCAoX193ZWJwYWNrX21vZHVsZXNfXylcbl9fd2VicGFja19yZXF1aXJlX18ubSA9IF9fd2VicGFja19tb2R1bGVzX187XG5cbi8vIHRoZSBzdGFydHVwIGZ1bmN0aW9uXG5fX3dlYnBhY2tfcmVxdWlyZV9fLnggPSAoKSA9PiB7XG5cdC8vIExvYWQgZW50cnkgbW9kdWxlIGFuZCByZXR1cm4gZXhwb3J0c1xuXHQvLyBUaGlzIGVudHJ5IG1vZHVsZSBkZXBlbmRzIG9uIG90aGVyIGxvYWRlZCBjaHVua3MgYW5kIGV4ZWN1dGlvbiBuZWVkIHRvIGJlIGRlbGF5ZWRcblx0dmFyIF9fd2VicGFja19leHBvcnRzX18gPSBfX3dlYnBhY2tfcmVxdWlyZV9fLk8odW5kZWZpbmVkLCBbMTQ2XSwgKCkgPT4gKF9fd2VicGFja19yZXF1aXJlX18oOTM1NSkpKVxuXHRfX3dlYnBhY2tfZXhwb3J0c19fID0gX193ZWJwYWNrX3JlcXVpcmVfXy5PKF9fd2VicGFja19leHBvcnRzX18pO1xuXHRyZXR1cm4gX193ZWJwYWNrX2V4cG9ydHNfXztcbn07XG5cbiIsIl9fd2VicGFja19yZXF1aXJlX18uYW1kTyA9IHt9OyIsIi8vIGRlZmluZSBnZXR0ZXIgZnVuY3Rpb25zIGZvciBoYXJtb255IGV4cG9ydHNcbl9fd2VicGFja19yZXF1aXJlX18uZCA9IChleHBvcnRzLCBkZWZpbml0aW9uKSA9PiB7XG5cdGZvcih2YXIga2V5IGluIGRlZmluaXRpb24pIHtcblx0XHRpZihfX3dlYnBhY2tfcmVxdWlyZV9fLm8oZGVmaW5pdGlvbiwga2V5KSAmJiAhX193ZWJwYWNrX3JlcXVpcmVfXy5vKGV4cG9ydHMsIGtleSkpIHtcblx0XHRcdE9iamVjdC5kZWZpbmVQcm9wZXJ0eShleHBvcnRzLCBrZXksIHsgZW51bWVyYWJsZTogdHJ1ZSwgZ2V0OiBkZWZpbml0aW9uW2tleV0gfSk7XG5cdFx0fVxuXHR9XG59OyIsIl9fd2VicGFja19yZXF1aXJlX18uZiA9IHt9O1xuLy8gVGhpcyBmaWxlIGNvbnRhaW5zIG9ubHkgdGhlIGVudHJ5IGNodW5rLlxuLy8gVGhlIGNodW5rIGxvYWRpbmcgZnVuY3Rpb24gZm9yIGFkZGl0aW9uYWwgY2h1bmtzXG5fX3dlYnBhY2tfcmVxdWlyZV9fLmUgPSAoY2h1bmtJZCkgPT4ge1xuXHRyZXR1cm4gUHJvbWlzZS5hbGwoT2JqZWN0LmtleXMoX193ZWJwYWNrX3JlcXVpcmVfXy5mKS5yZWR1Y2UoKHByb21pc2VzLCBrZXkpID0+IHtcblx0XHRfX3dlYnBhY2tfcmVxdWlyZV9fLmZba2V5XShjaHVua0lkLCBwcm9taXNlcyk7XG5cdFx0cmV0dXJuIHByb21pc2VzO1xuXHR9LCBbXSkpO1xufTsiLCIvLyBUaGlzIGZ1bmN0aW9uIGFsbG93IHRvIHJlZmVyZW5jZSBhc3luYyBjaHVua3MgYW5kIHNpYmxpbmcgY2h1bmtzIGZvciB0aGUgZW50cnlwb2ludFxuX193ZWJwYWNrX3JlcXVpcmVfXy51ID0gKGNodW5rSWQpID0+IHtcblx0Ly8gcmV0dXJuIHVybCBmb3IgZmlsZW5hbWVzIGJhc2VkIG9uIHRlbXBsYXRlXG5cdHJldHVybiBcIlwiICsgY2h1bmtJZCArIFwiLmpzXCI7XG59OyIsIl9fd2VicGFja19yZXF1aXJlX18uZyA9IChmdW5jdGlvbigpIHtcblx0aWYgKHR5cGVvZiBnbG9iYWxUaGlzID09PSAnb2JqZWN0JykgcmV0dXJuIGdsb2JhbFRoaXM7XG5cdHRyeSB7XG5cdFx0cmV0dXJuIHRoaXMgfHwgbmV3IEZ1bmN0aW9uKCdyZXR1cm4gdGhpcycpKCk7XG5cdH0gY2F0Y2ggKGUpIHtcblx0XHRpZiAodHlwZW9mIHdpbmRvdyA9PT0gJ29iamVjdCcpIHJldHVybiB3aW5kb3c7XG5cdH1cbn0pKCk7IiwiX193ZWJwYWNrX3JlcXVpcmVfXy5obWQgPSAobW9kdWxlKSA9PiB7XG5cdG1vZHVsZSA9IE9iamVjdC5jcmVhdGUobW9kdWxlKTtcblx0aWYgKCFtb2R1bGUuY2hpbGRyZW4pIG1vZHVsZS5jaGlsZHJlbiA9IFtdO1xuXHRPYmplY3QuZGVmaW5lUHJvcGVydHkobW9kdWxlLCAnZXhwb3J0cycsIHtcblx0XHRlbnVtZXJhYmxlOiB0cnVlLFxuXHRcdHNldDogKCkgPT4ge1xuXHRcdFx0dGhyb3cgbmV3IEVycm9yKCdFUyBNb2R1bGVzIG1heSBub3QgYXNzaWduIG1vZHVsZS5leHBvcnRzIG9yIGV4cG9ydHMuKiwgVXNlIEVTTSBleHBvcnQgc3ludGF4LCBpbnN0ZWFkOiAnICsgbW9kdWxlLmlkKTtcblx0XHR9XG5cdH0pO1xuXHRyZXR1cm4gbW9kdWxlO1xufTsiLCJfX3dlYnBhY2tfcmVxdWlyZV9fLm8gPSAob2JqLCBwcm9wKSA9PiAoT2JqZWN0LnByb3RvdHlwZS5oYXNPd25Qcm9wZXJ0eS5jYWxsKG9iaiwgcHJvcCkpIiwidmFyIHNjcmlwdFVybDtcbmlmIChfX3dlYnBhY2tfcmVxdWlyZV9fLmcuaW1wb3J0U2NyaXB0cykgc2NyaXB0VXJsID0gX193ZWJwYWNrX3JlcXVpcmVfXy5nLmxvY2F0aW9uICsgXCJcIjtcbnZhciBkb2N1bWVudCA9IF9fd2VicGFja19yZXF1aXJlX18uZy5kb2N1bWVudDtcbmlmICghc2NyaXB0VXJsICYmIGRvY3VtZW50KSB7XG5cdGlmIChkb2N1bWVudC5jdXJyZW50U2NyaXB0KVxuXHRcdHNjcmlwdFVybCA9IGRvY3VtZW50LmN1cnJlbnRTY3JpcHQuc3JjO1xuXHRpZiAoIXNjcmlwdFVybCkge1xuXHRcdHZhciBzY3JpcHRzID0gZG9jdW1lbnQuZ2V0RWxlbWVudHNCeVRhZ05hbWUoXCJzY3JpcHRcIik7XG5cdFx0aWYoc2NyaXB0cy5sZW5ndGgpIHtcblx0XHRcdHZhciBpID0gc2NyaXB0cy5sZW5ndGggLSAxO1xuXHRcdFx0d2hpbGUgKGkgPiAtMSAmJiAhc2NyaXB0VXJsKSBzY3JpcHRVcmwgPSBzY3JpcHRzW2ktLV0uc3JjO1xuXHRcdH1cblx0fVxufVxuLy8gV2hlbiBzdXBwb3J0aW5nIGJyb3dzZXJzIHdoZXJlIGFuIGF1dG9tYXRpYyBwdWJsaWNQYXRoIGlzIG5vdCBzdXBwb3J0ZWQgeW91IG11c3Qgc3BlY2lmeSBhbiBvdXRwdXQucHVibGljUGF0aCBtYW51YWxseSB2aWEgY29uZmlndXJhdGlvblxuLy8gb3IgcGFzcyBhbiBlbXB0eSBzdHJpbmcgKFwiXCIpIGFuZCBzZXQgdGhlIF9fd2VicGFja19wdWJsaWNfcGF0aF9fIHZhcmlhYmxlIGZyb20geW91ciBjb2RlIHRvIHVzZSB5b3VyIG93biBsb2dpYy5cbmlmICghc2NyaXB0VXJsKSB0aHJvdyBuZXcgRXJyb3IoXCJBdXRvbWF0aWMgcHVibGljUGF0aCBpcyBub3Qgc3VwcG9ydGVkIGluIHRoaXMgYnJvd3NlclwiKTtcbnNjcmlwdFVybCA9IHNjcmlwdFVybC5yZXBsYWNlKC8jLiokLywgXCJcIikucmVwbGFjZSgvXFw/LiokLywgXCJcIikucmVwbGFjZSgvXFwvW15cXC9dKyQvLCBcIi9cIik7XG5fX3dlYnBhY2tfcmVxdWlyZV9fLnAgPSBzY3JpcHRVcmw7IiwiX193ZWJwYWNrX3JlcXVpcmVfXy5iID0gc2VsZi5sb2NhdGlvbiArIFwiXCI7XG5cbi8vIG9iamVjdCB0byBzdG9yZSBsb2FkZWQgY2h1bmtzXG4vLyBcIjFcIiBtZWFucyBcImFscmVhZHkgbG9hZGVkXCJcbnZhciBpbnN0YWxsZWRDaHVua3MgPSB7XG5cdDM1NTogMVxufTtcblxuLy8gaW1wb3J0U2NyaXB0cyBjaHVuayBsb2FkaW5nXG52YXIgaW5zdGFsbENodW5rID0gKGRhdGEpID0+IHtcblx0dmFyIFtjaHVua0lkcywgbW9yZU1vZHVsZXMsIHJ1bnRpbWVdID0gZGF0YTtcblx0Zm9yKHZhciBtb2R1bGVJZCBpbiBtb3JlTW9kdWxlcykge1xuXHRcdGlmKF9fd2VicGFja19yZXF1aXJlX18ubyhtb3JlTW9kdWxlcywgbW9kdWxlSWQpKSB7XG5cdFx0XHRfX3dlYnBhY2tfcmVxdWlyZV9fLm1bbW9kdWxlSWRdID0gbW9yZU1vZHVsZXNbbW9kdWxlSWRdO1xuXHRcdH1cblx0fVxuXHRpZihydW50aW1lKSBydW50aW1lKF9fd2VicGFja19yZXF1aXJlX18pO1xuXHR3aGlsZShjaHVua0lkcy5sZW5ndGgpXG5cdFx0aW5zdGFsbGVkQ2h1bmtzW2NodW5rSWRzLnBvcCgpXSA9IDE7XG5cdHBhcmVudENodW5rTG9hZGluZ0Z1bmN0aW9uKGRhdGEpO1xufTtcbl9fd2VicGFja19yZXF1aXJlX18uZi5pID0gKGNodW5rSWQsIHByb21pc2VzKSA9PiB7XG5cdC8vIFwiMVwiIGlzIHRoZSBzaWduYWwgZm9yIFwiYWxyZWFkeSBsb2FkZWRcIlxuXHRpZighaW5zdGFsbGVkQ2h1bmtzW2NodW5rSWRdKSB7XG5cdFx0aWYodHJ1ZSkgeyAvLyBhbGwgY2h1bmtzIGhhdmUgSlNcblx0XHRcdGltcG9ydFNjcmlwdHMoX193ZWJwYWNrX3JlcXVpcmVfXy5wICsgX193ZWJwYWNrX3JlcXVpcmVfXy51KGNodW5rSWQpKTtcblx0XHR9XG5cdH1cbn07XG5cbnZhciBjaHVua0xvYWRpbmdHbG9iYWwgPSBzZWxmW1wid2VicGFja0NodW5rZWRhXCJdID0gc2VsZltcIndlYnBhY2tDaHVua2VkYVwiXSB8fCBbXTtcbnZhciBwYXJlbnRDaHVua0xvYWRpbmdGdW5jdGlvbiA9IGNodW5rTG9hZGluZ0dsb2JhbC5wdXNoLmJpbmQoY2h1bmtMb2FkaW5nR2xvYmFsKTtcbmNodW5rTG9hZGluZ0dsb2JhbC5wdXNoID0gaW5zdGFsbENodW5rO1xuXG4vLyBubyBITVJcblxuLy8gbm8gSE1SIG1hbmlmZXN0IiwiLy8gcnVuIHN0YXJ0dXBcbnZhciBfX3dlYnBhY2tfZXhwb3J0c19fID0gX193ZWJwYWNrX3JlcXVpcmVfXy54KCk7XG4iXSwibmFtZXMiOlsiZGVmZXJyZWQiLCJuZXh0Iiwib25tZXNzYWdlIiwiYXN5bmMiLCJldnQiLCJ0aGVuIiwibW9kdWxlIiwiYXJncyIsImRhdGEiLCJyZXN1bHQiLCJwb3N0TWVzc2FnZSIsIl9fd2VicGFja19tb2R1bGVfY2FjaGVfXyIsIl9fd2VicGFja19yZXF1aXJlX18iLCJtb2R1bGVJZCIsImNhY2hlZE1vZHVsZSIsInVuZGVmaW5lZCIsImV4cG9ydHMiLCJpZCIsImxvYWRlZCIsIl9fd2VicGFja19tb2R1bGVzX18iLCJtIiwieCIsIl9fd2VicGFja19leHBvcnRzX18iLCJPIiwiYW1kTyIsImNodW5rSWRzIiwiZm4iLCJwcmlvcml0eSIsIm5vdEZ1bGZpbGxlZCIsIkluZmluaXR5IiwiaSIsImxlbmd0aCIsImZ1bGZpbGxlZCIsImoiLCJPYmplY3QiLCJrZXlzIiwiZXZlcnkiLCJrZXkiLCJzcGxpY2UiLCJyIiwiZCIsImRlZmluaXRpb24iLCJvIiwiZGVmaW5lUHJvcGVydHkiLCJlbnVtZXJhYmxlIiwiZ2V0IiwiZiIsImUiLCJjaHVua0lkIiwiUHJvbWlzZSIsImFsbCIsInJlZHVjZSIsInByb21pc2VzIiwidSIsImciLCJnbG9iYWxUaGlzIiwidGhpcyIsIkZ1bmN0aW9uIiwid2luZG93IiwiaG1kIiwiY3JlYXRlIiwiY2hpbGRyZW4iLCJzZXQiLCJFcnJvciIsIm9iaiIsInByb3AiLCJwcm90b3R5cGUiLCJoYXNPd25Qcm9wZXJ0eSIsImNhbGwiLCJzY3JpcHRVcmwiLCJpbXBvcnRTY3JpcHRzIiwibG9jYXRpb24iLCJkb2N1bWVudCIsImN1cnJlbnRTY3JpcHQiLCJzcmMiLCJzY3JpcHRzIiwiZ2V0RWxlbWVudHNCeVRhZ05hbWUiLCJyZXBsYWNlIiwicCIsImIiLCJzZWxmIiwiaW5zdGFsbGVkQ2h1bmtzIiwiY2h1bmtMb2FkaW5nR2xvYmFsIiwicGFyZW50Q2h1bmtMb2FkaW5nRnVuY3Rpb24iLCJwdXNoIiwiYmluZCIsIm1vcmVNb2R1bGVzIiwicnVudGltZSIsInBvcCJdLCJzb3VyY2VSb290IjoiIn0=
|
package/dist/356.js
CHANGED
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
var eda;(()=>{"use strict";var t,e={
|
|
2
|
-
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiMzU2LmpzIiwibWFwcGluZ3MiOiI4RUFDTyxJQUNEQSxFQURLQyxHQUNMRCxFQUFpQyxvQkFBYkUsVUFBNEJBLFNBQVNDLGNBQWdCRCxTQUFTQyxjQUFjQyxTQUFNQyxFQUVuRyxTQUNBSixFQUFlLENBQUMsR0FFekIsSUFBZ0VLLEVBQW9CQyxFQUFoRkMsT0FBNEIsSUFBZFAsRUFBMEJBLEVBQWEsQ0FBQyxFQUE2Q08sRUFBYyxNQUFFLElBQUlDLFNBQVEsU0FBU0MsRUFBUUMsR0FBUUwsRUFBb0JJLEVBQVFILEVBQW1CSSxDQUFNLElBQUcsSUFBOGhCQyxFQUExaEJDLEVBQWdCQyxPQUFPQyxPQUFPLENBQUMsRUFBRVAsR0FBMkdRLEVBQWtDLGlCQUFSQyxPQUFxQkMsRUFBNEMsbUJBQWZDLGNBQTBKQyxHQUF4RixpQkFBVEMsU0FBNEMsaUJBQWxCQSxRQUFRQyxVQUEyQkQsUUFBUUMsU0FBU0MsS0FBbUMsS0FBcUxQLEdBQW9CRSxLQUEwQkEsRUFBdUJFLEVBQWdCSSxLQUFLQyxTQUFTQyxLQUE4QixvQkFBVnhCLFVBQXVCQSxTQUFTQyxnQkFBZWlCLEVBQWdCbEIsU0FBU0MsY0FBY0MsS0FBT0osSUFBWW9CLEVBQWdCcEIsR0FBb0RvQixFQUFILElBQW5DQSxFQUFnQk8sUUFBUSxTQUE4QlAsRUFBZ0JRLE9BQU8sRUFBRVIsRUFBZ0JTLFFBQVEsU0FBUyxJQUFJQyxZQUFZLEtBQUssR0FBd0IsR0FBZ0haLElBQXVCTixFQUFXbUIsSUFBTSxJQUFJQyxFQUFJLElBQUlDLGVBQXVGLE9BQXhFRCxFQUFJRSxLQUFLLE1BQU1ILEdBQUksR0FBT0MsRUFBSUcsYUFBYSxjQUFjSCxFQUFJSSxLQUFLLE1BQWEsSUFBSUMsV0FBV0wsRUFBSU0sU0FBUSxJQUE0VDlCLEVBQWMsT0FBRytCLFFBQVFDLElBQUlDLEtBQUtGLFNBQTFDLElBQWlVRyxFQUFpTUMsRUFBM2NDLEVBQUlwQyxFQUFpQixVQUFHK0IsUUFBUU0sS0FBS0osS0FBS0YsU0FBU3pCLE9BQU9DLE9BQU9QLEVBQU9LLEdBQWlCQSxFQUFnQixLQUFRTCxFQUFrQixXQUFhQSxFQUFrQixVQUFLQSxFQUFvQixhQUFjQSxFQUFvQixZQUFLQSxFQUFhLE1BQVFBLEVBQWEsS0FBb0JBLEVBQW1CLGFBQUVrQyxFQUFXbEMsRUFBbUIsWUFBb0JBLEVBQXNCLGNBQStCLGlCQUFic0MsYUFBdUJDLEVBQU0sbUNBQWtELElBQW1DQyxFQUFNQyxFQUE2QkMsRUFBbEVDLEdBQU0sRUFBb0YsU0FBU0MsSUFBb0IsSUFBSUMsRUFBRVYsRUFBV1csT0FBTzlDLEVBQWMsTUFBRXdDLEVBQU0sSUFBSU8sVUFBVUYsR0FBRzdDLEVBQWUsT0FBUyxJQUFJZ0QsV0FBV0gsR0FBRzdDLEVBQWUsT0FBUyxJQUFJaUQsV0FBV0osR0FBRzdDLEVBQWUsT0FBRXlDLEVBQU8sSUFBSVosV0FBV2dCLEdBQUc3QyxFQUFnQixRQUFVLElBQUlrRCxZQUFZTCxHQUFHN0MsRUFBZ0IsUUFBRTBDLEVBQVEsSUFBSVMsWUFBWU4sR0FBRzdDLEVBQWdCLFFBQVUsSUFBSW9ELGFBQWFQLEdBQUc3QyxFQUFnQixRQUFVLElBQUlxRCxhQUFhUixFQUFFLENBQWUsSUFBSVMsRUFBYSxHQUFPQyxFQUFXLEdBQU9DLEVBQWMsR0FBdXNCQyxFQUFnQixFQUFNQyxFQUFxQixLQUFTQyxFQUFzQixLQUFpZixTQUFTcEIsRUFBTXFCLEdBQVM1RCxFQUFnQixTQUFHQSxFQUFnQixRQUFFNEQsR0FBK0J4QixFQUF6QndCLEVBQUssV0FBV0EsRUFBSyxLQUFjakIsR0FBTSxFQUFrQmlCLEdBQU0sMkNBQTJDLElBQUlDLEVBQUUsSUFBSXZCLFlBQVl3QixhQUFhRixHQUE0QixNQUF0QjdELEVBQW1COEQsR0FBU0EsQ0FBQyxDQUFDLElBQXFJRSxFQUF4MEhDLEVBQTZ2SCxTQUFTQyxFQUFVQyxHQUFVLE9BQU9BLEVBQVNDLFdBQXJGLHdDQUE4RyxDQUErSCxTQUFTQyxFQUFVQyxHQUFNLElBQUksR0FBR0EsR0FBTU4sR0FBZ0I3QixFQUFZLE9BQU8sSUFBSUwsV0FBV0ssR0FBWSxHQUFHOUIsRUFBWSxPQUFPQSxFQUFXaUUsR0FBTSxLQUFLLGlEQUFpRCxDQUFDLE1BQU1qQyxHQUFLRyxFQUFNSCxFQUFJLENBQUMsQ0FBeWIsU0FBU2tDLEVBQXVCQyxFQUFXQyxFQUFRQyxHQUFVLE9BQXJmLFNBQTBCRixHQUFZLE9BQUlyQyxJQUFhMUIsSUFBb0JFLEdBQXlDLG1CQUFQZ0UsTUFBMFF6RSxRQUFRQyxVQUFVeUUsTUFBSyxXQUFXLE9BQU9QLEVBQVVHLEVBQVcsSUFBOVNHLE1BQU1ILEVBQVcsQ0FBQ0ssWUFBWSxnQkFBZ0JELE1BQUssU0FBUzdDLEdBQVUsSUFBSUEsRUFBYSxHQUFHLEtBQUssdUNBQXVDeUMsRUFBVyxJQUFJLE9BQU96QyxFQUFzQixhQUFHLElBQUcrQyxPQUFNLFdBQVcsT0FBT1QsRUFBVUcsRUFBVyxHQUEyRSxDQUFxRU8sQ0FBaUJQLEdBQVlJLE1BQUssU0FBU0ksR0FBUSxPQUFPekMsWUFBWTBDLFlBQVlELEVBQU9QLEVBQVEsSUFBR0csTUFBSyxTQUFTTSxHQUFVLE9BQU9BLENBQVEsSUFBR04sS0FBS0YsR0FBUyxTQUFTUyxHQUFROUMsRUFBSSwwQ0FBMEM4QyxHQUFRM0MsRUFBTTJDLEVBQU8sR0FBRSxDQUFxeEMsU0FBU0MsRUFBcUJDLEdBQVcsS0FBTUEsRUFBVUMsT0FBTyxHQUFHRCxFQUFVRSxPQUFWRixDQUFrQnBGLEVBQVEsQ0FBQyxTQUFTdUYsRUFBY0MsR0FBUUMsS0FBS0QsT0FBT0EsRUFBT0MsS0FBS0MsSUFBSUYsRUFBTyxHQUFHQyxLQUFLRSxTQUFTLFNBQVNDLEdBQU1sRCxFQUFRK0MsS0FBS0MsSUFBSSxHQUFHLEdBQUdFLENBQUksRUFBRUgsS0FBS0ksU0FBUyxXQUFXLE9BQU9uRCxFQUFRK0MsS0FBS0MsSUFBSSxHQUFHLEVBQUUsRUFBRUQsS0FBS0ssZUFBZSxTQUFTQyxHQUFZckQsRUFBUStDLEtBQUtDLElBQUksR0FBRyxHQUFHSyxDQUFVLEVBQUVOLEtBQUtPLGVBQWUsV0FBVyxPQUFPdEQsRUFBUStDLEtBQUtDLElBQUksR0FBRyxFQUFFLEVBQUVELEtBQUtRLFdBQVcsU0FBU0MsR0FBUUEsRUFBT0EsRUFBTyxFQUFFLEVBQUUxRCxFQUFNaUQsS0FBS0MsSUFBSSxJQUFJLEdBQUdRLENBQU0sRUFBRVQsS0FBS1UsV0FBVyxXQUFXLE9BQThCLEdBQXZCM0QsRUFBTWlELEtBQUtDLElBQUksSUFBSSxFQUFLLEVBQUVELEtBQUtXLGFBQWEsU0FBU0MsR0FBVUEsRUFBU0EsRUFBUyxFQUFFLEVBQUU3RCxFQUFNaUQsS0FBS0MsSUFBSSxJQUFJLEdBQUdXLENBQVEsRUFBRVosS0FBS2EsYUFBYSxXQUFXLE9BQThCLEdBQXZCOUQsRUFBTWlELEtBQUtDLElBQUksSUFBSSxFQUFLLEVBQUVELEtBQUtjLEtBQUssU0FBU1gsRUFBS0csR0FBWU4sS0FBS2UsaUJBQWlCLEdBQUdmLEtBQUtFLFNBQVNDLEdBQU1ILEtBQUtLLGVBQWVDLEVBQVcsRUFBRU4sS0FBS2UsaUJBQWlCLFNBQVNDLEdBQWEvRCxFQUFRK0MsS0FBS0MsSUFBSSxJQUFJLEdBQUdlLENBQVcsRUFBRWhCLEtBQUtpQixpQkFBaUIsV0FBVyxPQUFPaEUsRUFBUStDLEtBQUtDLElBQUksSUFBSSxFQUFFLEVBQUVELEtBQUtrQixrQkFBa0IsV0FBaUUsR0FBeENDLEVBQXVCbkIsS0FBS0ksWUFBMEIsT0FBT25ELEVBQVErQyxLQUFLRCxRQUFRLEdBQUcsSUFBSXFCLEVBQVNwQixLQUFLaUIsbUJBQW1CLE9BQWMsSUFBWEcsRUFBb0JBLEVBQWdCcEIsS0FBS0QsTUFBTSxDQUFDLENBQTZXLFNBQVNzQixFQUEwQkMsR0FBTSxJQUFJbEUsRUFBRVYsRUFBV1csT0FBTyxJQUFzRSxPQUFsRVgsRUFBVzZFLEtBQUtELEVBQUtsRSxFQUFFb0UsV0FBVyxRQUFRLElBQUlyRSxJQUEyQixDQUFDLENBQUMsTUFBTWlCLEdBQUcsQ0FBQyxDQUFra0IsU0FBU3FELEVBQVNDLEdBQWtDLE9BQWxCbkgsRUFBTyxJQUFJbUgsRUFBa0IsQ0FBL2tKbEQsRUFBdENGLEVBQWUsc0JBQXQySEMsRUFBazdIRCxFQUExQkEsRUFBLzRIL0QsRUFBbUIsV0FBVUEsRUFBbUIsV0FBRWdFLEVBQUtwRCxHQUF3QkEsRUFBZ0JvRCxHQUE2aVQsSUFBSW9ELEVBQWdDLG9CQUFiQyxZQUF5QixJQUFJQSxZQUFZLGFBQVF4SCxFQUFvMEIsU0FBU3lILEVBQU1ILEVBQU1JLEVBQVdDLEVBQVNDLEVBQUtDLEdBQU0sSUFBSUMsRUFBSSxDQUFDLE9BQVNDLElBQU0sSUFBSUMsRUFBSSxFQUF3RSxPQUFuRUQsU0FBbUMsSUFBTkEsSUFBU0MsRUFBNW9DLFNBQTZCRCxHQUFLLElBQUliLEVBQTNpQyxTQUF5QmEsR0FBZSxJQUFWLElBQUlFLEVBQUksRUFBVUMsRUFBRSxFQUFFQSxFQUFFSCxFQUFJdkMsU0FBUzBDLEVBQUUsQ0FBQyxJQUFJQyxFQUFFSixFQUFJSyxXQUFXRixHQUFNQyxHQUFHLElBQUtGLElBQWNFLEdBQUcsS0FBTUYsR0FBSyxFQUFVRSxHQUFHLE9BQU9BLEdBQUcsT0FBT0YsR0FBSyxJQUFJQyxHQUFPRCxHQUFLLENBQUUsQ0FBQyxPQUFPQSxDQUFHLENBQTIyQkksQ0FBZ0JOLEdBQUssRUFBTUMsRUFBSU0sRUFBV3BCLEdBQWlDLE9BQXBPLFNBQXNCYSxFQUFJUSxFQUFPQyxJQUFsdkIsU0FBMkJULEVBQUlVLEVBQUtDLEVBQU9GLEdBQWlCLEtBQUtBLEVBQWdCLEdBQUcsT0FBTyxFQUEwRCxJQUF4RCxJQUF3QkcsRUFBT0QsRUFBT0YsRUFBZ0IsRUFBVU4sRUFBRSxFQUFFQSxFQUFFSCxFQUFJdkMsU0FBUzBDLEVBQUUsQ0FBQyxJQUFJVSxFQUFFYixFQUFJSyxXQUFXRixHQUFvRixHQUE5RVUsR0FBRyxPQUFPQSxHQUFHLFFBQWtDQSxFQUFFLFFBQVUsS0FBRkEsSUFBUyxJQUFPLEtBQTlDYixFQUFJSyxhQUFhRixJQUFxQ1UsR0FBRyxJQUFJLENBQUMsR0FBR0YsR0FBUUMsRUFBTyxNQUFNRixFQUFLQyxLQUFVRSxDQUFDLE1BQU0sR0FBR0EsR0FBRyxLQUFLLENBQUMsR0FBR0YsRUFBTyxHQUFHQyxFQUFPLE1BQU1GLEVBQUtDLEtBQVUsSUFBSUUsR0FBRyxFQUFFSCxFQUFLQyxLQUFVLElBQU0sR0FBRkUsQ0FBSSxNQUFNLEdBQUdBLEdBQUcsTUFBTSxDQUFDLEdBQUdGLEVBQU8sR0FBR0MsRUFBTyxNQUFNRixFQUFLQyxLQUFVLElBQUlFLEdBQUcsR0FBR0gsRUFBS0MsS0FBVSxJQUFJRSxHQUFHLEVBQUUsR0FBR0gsRUFBS0MsS0FBVSxJQUFNLEdBQUZFLENBQUksS0FBSyxDQUFDLEdBQUdGLEVBQU8sR0FBR0MsRUFBTyxNQUFNRixFQUFLQyxLQUFVLElBQUlFLEdBQUcsR0FBR0gsRUFBS0MsS0FBVSxJQUFJRSxHQUFHLEdBQUcsR0FBR0gsRUFBS0MsS0FBVSxJQUFJRSxHQUFHLEVBQUUsR0FBR0gsRUFBS0MsS0FBVSxJQUFNLEdBQUZFLENBQUksQ0FBQyxDQUFDSCxFQUFLQyxHQUFRLENBQXdCLENBQTBERyxDQUFrQmQsRUFBSW5GLEVBQU8yRixFQUFPQyxFQUFnQixDQUE0Rk0sQ0FBYWYsRUFBSUMsRUFBSWQsR0FBYWMsQ0FBRyxDQUFnaENlLENBQW9CaEIsSUFBWUMsR0FBSyxNQUFRZ0IsSUFBTSxJQUE5dUVDLEVBQU1oRyxFQUE0dUUrRSxFQUFJTSxFQUFXVSxFQUFJeEQsUUFBb0MsT0FBenlFeUQsRUFBZ3lFRCxFQUExeEUvRixFQUE4eEUrRSxFQUF0eEVyRixFQUFNdUcsSUFBSUQsRUFBTWhHLEdBQWt4RStFLElBQXVKbUIsRUFBSzlCLEVBQVNDLEdBQVc4QixFQUFNLEdBQU9DLEVBQU0sRUFBRSxHQUFHekIsRUFBTSxJQUFJLElBQUlNLEVBQUUsRUFBRUEsRUFBRU4sRUFBS3BDLE9BQU8wQyxJQUFJLENBQUMsSUFBSW9CLEVBQVV4QixFQUFJSCxFQUFTTyxJQUFPb0IsR0FBc0IsSUFBUkQsSUFBVUEsRUFBTUUsS0FBWUgsRUFBTWxCLEdBQUdvQixFQUFVMUIsRUFBS00sS0FBU2tCLEVBQU1sQixHQUFHTixFQUFLTSxFQUFHLENBQUUsSUFBSUYsRUFBSW1CLEVBQUtLLE1BQU0sS0FBS0osR0FBNEcsT0FBckcsU0FBZ0JwQixHQUFzQyxPQUF0QixJQUFScUIsR0FBVUksRUFBYUosR0FBcmIsU0FBNEJyQixHQUFLLE1BQWdCLFdBQWJOLEdBQWpYN0IsRUFBNFptQyxHQUF2b0MsU0FBMkIwQixFQUFZQyxFQUFJQyxHQUE2RCxJQUE3QyxJQUFJakIsRUFBT2dCLEVBQUlDLEVBQW1CQyxFQUFPRixFQUFVRCxFQUFZRyxNQUFXQSxHQUFRbEIsTUFBVWtCLEVBQU8sR0FBR0EsRUFBT0YsRUFBSSxJQUFJRCxFQUFZekcsUUFBUXNFLEVBQWEsT0FBT0EsRUFBWXVDLE9BQU9KLEVBQVlLLFNBQVNKLEVBQUlFLElBQW9CLElBQVgsSUFBSTlCLEVBQUksR0FBUzRCLEVBQUlFLEdBQU8sQ0FBQyxJQUFJRyxFQUFHTixFQUFZQyxLQUFPLEdBQVEsSUFBSEssRUFBTCxDQUFvRCxJQUFJQyxFQUFzQixHQUFuQlAsRUFBWUMsS0FBVSxHQUFhLE1BQU4sSUFBSEssR0FBSixDQUFtRSxJQUFJRSxFQUFzQixHQUFuQlIsRUFBWUMsS0FBMEcsSUFBOUVLLEVBQUwsTUFBTixJQUFIQSxJQUFxQixHQUFIQSxJQUFRLEdBQUdDLEdBQUksRUFBRUMsR0FBZSxFQUFIRixJQUFPLEdBQUdDLEdBQUksR0FBR0MsR0FBSSxFQUFxQixHQUFuQlIsRUFBWUMsTUFBZ0IsTUFBTzVCLEdBQUtvQyxPQUFPQyxhQUFhSixPQUFRLENBQUMsSUFBSUssRUFBR0wsRUFBRyxNQUFNakMsR0FBS29DLE9BQU9DLGFBQWEsTUFBTUMsR0FBSSxHQUFHLE1BQVMsS0FBSEEsRUFBUSxDQUFqUCxNQUFoRHRDLEdBQUtvQyxPQUFPQyxjQUFpQixHQUFISixJQUFRLEVBQUVDLEVBQXBGLE1BQXJDbEMsR0FBS29DLE9BQU9DLGFBQWFKLEVBQThWLENBQUMsT0FBT2pDLENBQUcsQ0FBc0R1QyxDQUFrQjFILEVBQU9pRCxFQUFJK0QsR0FBZ0IsR0FBcVcsWUFBYmxDLEVBQThCNkMsUUFBUXZDLEdBQVlBLEVBQTVlLElBQXNCbkMsRUFBSStELENBQXFkLENBQXVUWSxDQUFtQnhDLEVBQUksQ0FBS3lDLENBQU96QyxFQUFlLENBQTRTLElBQThtQzBDLEVBQTFtQ0MsRUFBWSxDQUFDLEVBQTN0SSxTQUFzQjlFLEVBQUlFLEVBQUtHLEdBQWtILE1BQTdGLElBQUlSLEVBQWNHLEdBQVVhLEtBQUtYLEVBQUtHLEdBQTBCTCxDQUFnRCxFQUF3a0ksRUFBdmtJLFdBQWtCbkQsRUFBTSxHQUFHLEVBQXVqSSxFQUF0akksU0FBZ0NrSSxFQUFLN0ssRUFBSThLLEdBQUtqSSxFQUFPa0ksV0FBV0YsRUFBSzdLLEVBQUlBLEVBQUk4SyxFQUFJLEVBQWdnSSxFQUE1ekgsU0FBaUNFLEdBQWUsSUFBK0lDLEVBQTNJQyxFQUFRckksRUFBTzRDLE9BQTJDMEYsRUFBcFIsV0FBNlMsSUFBN0RILEtBQThCLEdBQWdERyxFQUFhLE9BQU8sRUFBaUUsSUFBSSxJQUFJQyxFQUFRLEVBQUVBLEdBQVMsRUFBRUEsR0FBUyxFQUFFLENBQUMsSUFBSUMsRUFBa0JILEdBQVMsRUFBRSxHQUFHRSxHQUE2TixHQUFwTkMsRUFBa0JDLEtBQUtDLElBQUlGLEVBQWtCTCxFQUFjLFdBQXNIOUQsRUFBL0ZvRSxLQUFLQyxJQUFJSixHQUEvTkYsRUFBbVBLLEtBQUtFLElBQUlSLEVBQWNLLEtBQW1CLE1BQXBRSixFQUFvUSxlQUEyRSxPQUFPLENBQUssQ0FBQyxPQUFPLENBQUssR0FBZzRIekIsR0FBMXpOLFdBQXNCLElBQXBrQnJFLEVBQU9SLEVBQVdDLEVBQVE2RyxFQUE4aUJDLEVBQUssQ0FBQyxFQUFJZCxHQUFhLFNBQVNlLEVBQWdCdEcsRUFBU3VHLEdBQVEsSUFBOXVGQyxFQUFrdkZDLEVBQVF6RyxFQUFTeUcsUUFBbUwsT0FBM0sxTCxFQUFZLElBQUUwTCxFQUFRdkosRUFBV25DLEVBQVksSUFBSyxFQUFFNEMsSUFBOEI1QyxFQUFZLElBQUssRUFBOTJGeUwsRUFBMDNGekwsRUFBWSxJQUFLLEVBQXY0RnVELEVBQVdvSSxRQUFRRixHQUFtUixTQUE2QkcsR0FBNkcsR0FBekduSSxJQUFxQnpELEVBQStCLHdCQUFHQSxFQUErQix1QkFBRXlELEdBQXFDLEdBQWpCQSxJQUE4QyxPQUF2QkMsSUFBNkJtSSxjQUFjbkksR0FBc0JBLEVBQXFCLE1BQVFDLEdBQXNCLENBQUMsSUFBSTBILEVBQVMxSCxFQUFzQkEsRUFBc0IsS0FBSzBILEdBQVUsQ0FBRSxDQUFpd0VTLEdBQStDSixDQUFPLENBQXNILEdBQTEzRmpJLElBQXFCekQsRUFBK0Isd0JBQUdBLEVBQStCLHVCQUFFeUQsR0FBcXlGekQsRUFBd0IsZ0JBQUcsSUFBSSxPQUFPQSxFQUF3QixnQkFBRXNMLEVBQUtDLEVBQWdCLENBQUMsTUFBTTFILEdBQUd6QixFQUFJLHNEQUFzRHlCLEdBQUc5RCxFQUFtQjhELEVBQUUsRUFBem9Da0IsRUFBNHBDN0MsRUFBcnBDcUMsRUFBZ3FDUixFQUFycENTLEVBQW9xQzhHLEVBQTVwQ0QsRUFBMjJCLFNBQW9DVSxHQUFRUixFQUFnQlEsRUFBaUIsU0FBRSxFQUE1NkJoSCxHQUFpRCxtQkFBbEN6QyxZQUFZMEosc0JBQW1DL0gsRUFBVU0sSUFBMkIsbUJBQVBHLE1BQXFYSixFQUF1QkMsRUFBV0MsRUFBUTZHLEdBQXJZM0csTUFBTUgsRUFBVyxDQUFDSyxZQUFZLGdCQUFnQkQsTUFBSyxTQUFTN0MsR0FBd0UsT0FBbkRRLFlBQVkwSixxQkFBcUJsSyxFQUFTMEMsR0FBdUJHLEtBQUswRyxHQUFTLFNBQVNuRyxHQUF1RyxPQUEvRjlDLEVBQUksa0NBQWtDOEMsR0FBUTlDLEVBQUksNkNBQW9Ea0MsRUFBdUJDLEVBQVdDLEVBQVE2RyxFQUFTLEdBQUUsS0FBNnVCeEcsTUFBTTlFLEVBQTRCLENBQWdoTGtNLEdBQXVJak0sRUFBdUIsZUFBRSxXQUFXLE9BQXNCQSxFQUF1QixlQUFFQSxFQUFZLElBQUssR0FBR3FKLE1BQU0sS0FBSzZDLFVBQVUsRUFBWWxNLEVBQWMsTUFBRSxXQUFXLE9BQWFBLEVBQWMsTUFBRUEsRUFBWSxJQUFLLEdBQUdxSixNQUFNLEtBQUs2QyxVQUFVLEVBQWtJbE0sRUFBZ0IsUUFBRSxXQUFXLE9BQWVBLEVBQWdCLFFBQUVBLEVBQVksSUFBSyxHQUFHcUosTUFBTSxLQUFLNkMsVUFBVSxFQUFnQixXQUFXLE9BQU85QyxFQUFVcEosRUFBWSxJQUFLLEdBQUdxSixNQUFNLEtBQUs2QyxVQUFVLEdBQU01QyxFQUFhLFdBQVcsT0FBT0EsRUFBYXRKLEVBQVksSUFBSyxHQUFHcUosTUFBTSxLQUFLNkMsVUFBVSxFQUFNL0QsRUFBVyxXQUFXLE9BQU9BLEVBQVduSSxFQUFZLElBQUssR0FBR3FKLE1BQU0sS0FBSzZDLFVBQVUsRUFBTXRGLEVBQXVCLFdBQVcsT0FBT0EsRUFBdUI1RyxFQUFZLElBQUssR0FBR3FKLE1BQU0sS0FBSzZDLFVBQVUsRUFBMEssU0FBU0MsSUFBeUUsU0FBU0MsSUFBVzdCLElBQWlCQSxHQUFVLEVBQUt2SyxFQUFrQixXQUFFLEVBQVEyQyxJQUFuOVV3QyxFQUFxQjVCLEdBQXk5VXpELEVBQW9CRSxHQUFXQSxFQUE2QixzQkFBRUEsRUFBNkIsdUJBQXhpVixXQUFtQixHQUFHQSxFQUFnQixRQUFpRixJQUFqRCxtQkFBbkJBLEVBQWdCLFVBQWNBLEVBQWdCLFFBQUUsQ0FBQ0EsRUFBZ0IsVUFBU0EsRUFBZ0IsUUFBRXFGLFFBQTJNb0csRUFBdEx6TCxFQUFnQixRQUFFc0YsUUFBd0s5QixFQUFjbUksUUFBUUYsR0FBaEQsSUFBc0JBLEVBQTFKdEcsRUFBcUIzQixFQUFjLENBQXkwVTZJLElBQVMsQ0FBblI1SSxFQUFnQixJQUE3bFYsV0FBa0IsR0FBR3pELEVBQWUsT0FBOEUsSUFBL0MsbUJBQWxCQSxFQUFlLFNBQWNBLEVBQWUsT0FBRSxDQUFDQSxFQUFlLFNBQVNBLEVBQWUsT0FBRXFGLFFBQTJab0csRUFBdll6TCxFQUFlLE9BQUVzRixRQUEwWGhDLEVBQWFxSSxRQUFRRixHQUE5QyxJQUFxQkEsRUFBNVd0RyxFQUFxQjdCLEVBQWEsQ0FBNjRVZ0osR0FBWTdJLEVBQWdCLElBQWlPekQsRUFBa0IsV0FBR0EsRUFBa0IsVUFBRSxjQUFjdU0sWUFBVyxXQUFXQSxZQUFXLFdBQVd2TSxFQUFrQixVQUFFLEdBQUcsR0FBRSxHQUFHb00sR0FBTyxHQUFFLElBQVFBLEtBQVEsQ0FBQyxHQUExbUJwTSxFQUFjLE1BQUVzSCxFQUFNdEgsRUFBYyxNQUE3NEMsU0FBZW1ILEVBQU1JLEVBQVdDLEVBQVNFLEdBQU0sSUFBSThFLEdBQWFoRixHQUFVQSxFQUFTaUYsT0FBTTdHLEdBQWEsV0FBUEEsR0FBd0IsWUFBUEEsSUFBdUQsTUFBVCxXQUFiMkIsR0FBcUNpRixJQUFjOUUsRUFBYVIsRUFBU0MsR0FBYyxXQUFXLE9BQU9HLEVBQU1ILEVBQU1JLEVBQVdDLEVBQVMwRSxVQUFlLENBQUMsRUFBeW5DdkksRUFBc0IsU0FBUytJLElBQWdCbkMsR0FBVTRCLElBQVU1QixJQUFVNUcsRUFBc0IrSSxFQUFTLEVBQXVjMU0sRUFBZ0IsUUFBaUYsSUFBakQsbUJBQW5CQSxFQUFnQixVQUFjQSxFQUFnQixRQUFFLENBQUNBLEVBQWdCLFVBQVNBLEVBQWdCLFFBQUVxRixPQUFPLEdBQUdyRixFQUFnQixRQUFFMk0sS0FBbEIzTSxHQUc3OWIsT0FIdy9ibU0sSUFHai9iMU0sRUFBYW1OLEtBR3RCLEdBRXVCLGlCQUFabEIsUUFDVEYsRUFBT0UsUUFBVWpNLEVBQ1EsbUJBQVhvTixRQUF5QixPQUN2Q0EsT0FBTyxJQUFJLFdBQWEsT0FBT3BOLENBQWMsSUFDbkIsaUJBQVppTSxVQUNkQSxRQUFzQixhQUFJak0sRSwyRENuQnhCcU4sRUFBMkIsQ0FBQyxFQUdoQyxTQUFTQyxFQUFvQkMsR0FFNUIsSUFBSUMsRUFBZUgsRUFBeUJFLEdBQzVDLFFBQXFCbk4sSUFBakJvTixFQUNILE9BQU9BLEVBQWF2QixRQUdyQixJQUFJRixFQUFTc0IsRUFBeUJFLEdBQVksQ0FDakRwQixHQUFJb0IsRUFDSkUsUUFBUSxFQUNSeEIsUUFBUyxDQUFDLEdBVVgsT0FOQXlCLEVBQW9CSCxHQUFVeEIsRUFBUUEsRUFBT0UsUUFBU3FCLEdBR3REdkIsRUFBTzBCLFFBQVMsRUFHVDFCLEVBQU9FLE9BQ2YsQ0FHQXFCLEVBQW9CSyxFQUFJRCxFQzVCeEJKLEVBQW9CTSxLQUFPLENBQUMsRUNDNUJOLEVBQW9CTyxFQUFJLENBQUM1QixFQUFTNkIsS0FDakMsSUFBSSxJQUFJQyxLQUFPRCxFQUNYUixFQUFvQlUsRUFBRUYsRUFBWUMsS0FBU1QsRUFBb0JVLEVBQUUvQixFQUFTOEIsSUFDNUVsTixPQUFPb04sZUFBZWhDLEVBQVM4QixFQUFLLENBQUVHLFlBQVksRUFBTUMsSUFBS0wsRUFBV0MsSUFFMUUsRUNORFQsRUFBb0JjLEVBQUksV0FDdkIsR0FBMEIsaUJBQWZDLFdBQXlCLE9BQU9BLFdBQzNDLElBQ0MsT0FBT3JJLE1BQVEsSUFBSXNJLFNBQVMsY0FBYixFQUNoQixDQUFFLE1BQU9sSyxHQUNSLEdBQXNCLGlCQUFYcEQsT0FBcUIsT0FBT0EsTUFDeEMsQ0FDQSxDQVB1QixHQ0F4QnNNLEVBQW9CaUIsSUFBT3hDLEtBQzFCQSxFQUFTbEwsT0FBTzJOLE9BQU96QyxJQUNYMEMsV0FBVTFDLEVBQU8wQyxTQUFXLElBQ3hDNU4sT0FBT29OLGVBQWVsQyxFQUFRLFVBQVcsQ0FDeENtQyxZQUFZLEVBQ1o1RSxJQUFLLEtBQ0osTUFBTSxJQUFJb0YsTUFBTSwwRkFBNEYzQyxFQUFPSSxHQUFHLElBR2pISixHQ1RSdUIsRUFBb0JVLEVBQUksQ0FBQ1csRUFBS0MsSUFBVS9OLE9BQU9nTyxVQUFVQyxlQUFlQyxLQUFLSixFQUFLQyxHLE1DQWxGLElBQUlJLEVBQ0ExQixFQUFvQmMsRUFBRWxOLGdCQUFlOE4sRUFBWTFCLEVBQW9CYyxFQUFFNU0sU0FBVyxJQUN0RixJQUFJdkIsRUFBV3FOLEVBQW9CYyxFQUFFbk8sU0FDckMsSUFBSytPLEdBQWEvTyxJQUNiQSxFQUFTQyxnQkFDWjhPLEVBQVkvTyxFQUFTQyxjQUFjQyxNQUMvQjZPLEdBQVcsQ0FDZixJQUFJQyxFQUFVaFAsRUFBU2lQLHFCQUFxQixVQUM1QyxHQUFHRCxFQUFRckosT0FFVixJQURBLElBQUkwQyxFQUFJMkcsRUFBUXJKLE9BQVMsRUFDbEIwQyxHQUFLLElBQU0wRyxHQUFXQSxFQUFZQyxFQUFRM0csS0FBS25JLEdBRXhELENBSUQsSUFBSzZPLEVBQVcsTUFBTSxJQUFJTixNQUFNLHlEQUNoQ00sRUFBWUEsRUFBVXBOLFFBQVEsT0FBUSxJQUFJQSxRQUFRLFFBQVMsSUFBSUEsUUFBUSxZQUFhLEtBQ3BGMEwsRUFBb0I2QixFQUFJSCxDLEtDbEJ4QjFCLEVBQW9CbEssRUFBSTdCLEtBQUtDLFNBQVcsRyxTQ0N4QzROLFVBQWFDLElBQ1QsTUFBTSxhQUFFQyxFQUFZLEVBQUVDLEVBQUMsV0FBRUMsR0FBZUgsRUFBTUksS0FDeENBLEVBQU8sQ0FBQyxFQUNkLEtDUUdDLGVBQTBDQyxFQUFTSixFQUFHSyxHQUMzRCxNQUFNQyxFQUFVLElBQUlDLElBQUksV0FBdUNyTyxLQUN6RHNPLEVBQVdGLEVBQVFHLFVBQVUsRUFBR0gsRUFBUWhPLFlBQVksS0FBTyxHQUFLLG1CQUNoRW9PLFFBQXFCLE9BQWEsQ0FBQ0MsV0FBWSxJQUFNSCxJQUNyREksRUFDSkYsRUFBYUcsTUFBTSxnQkFBaUIsT0FBUSxDQUFDLFNBQVUsU0FBVSxTQUFVLFNBQVUsV0FFakZDLEVBQWtCMU0sYUFBYTJNLGtCQUFvQlgsRUFBUS9KLE9BQzNEMkssRUFBVU4sRUFBYU8sUUFBUUgsR0FDL0JJLEVBQVUsSUFBSXJPLFdBQVc2TixFQUFhak4sT0FBT0ssT0FBUWtOLEVBQVNGLEdBQ3BFSSxFQUFRbkgsSUFBSSxJQUFJbEgsV0FBV3VOLEVBQVF0TSxTQUduQyxNQUFNcU4sRUFBcUJsTixXQUFXOE0sbUJBQXFCZixFQUFJLEdBQUssRUFDOURvQixFQUFXVixFQUFhTyxRQUFRRSxHQUNoQ0UsRUFBWSxJQUFJeE8sV0FBVzZOLEVBQWFqTixPQUFPSyxPQUFRc04sRUFBVUQsR0FHakVHLEVBQXVCbE4sYUFBYTJNLG1CQUFxQmYsRUFBSSxHQUM3RHVCLEVBQWFiLEVBQWFPLFFBQVFLLEdBQ2xDRSxFQUFjLElBQUkzTyxXQUFXNk4sRUFBYWpOLE9BQU9LLE9BQVF5TixFQUFZRCxHQUczRVYsRUFBa0JJLEVBQVNoQixFQUFHSyxFQUFRZSxFQUFVRyxHQUVoRCxNQUFNRSxFQUFjLElBQUl4TixXQUFXb04sRUFBVXZOLE9BQVF1TixFQUFVSyxXQUFvQixHQUFQMUIsRUFBRSxJQUN4RTJCLEVBQWdCLElBQUt2TixhQUFhb04sRUFBWTFOLE9BQVEwTixFQUFZRSxXQUFZMUIsRUFBRSxHQUFJNEIsTUFBTSxFQUFHNUIsRUFBRSxHQUUvRjZCLEVBQVlKLEVBQVlHLE1BQU0sRUFBRzVCLEVBQUUsR0FDbkM4QixFQUFZTCxFQUFZRyxNQUFNNUIsRUFBRSxFQUFHLEVBQUVBLEVBQUksR0FLL0MsT0FIQVUsRUFBYXFCLE1BQU1iLEVBQVFRLFlBQzNCaEIsRUFBYXFCLE1BQU1WLEVBQVVLLFlBQzdCaEIsRUFBYXFCLE1BQU1QLEVBQVlFLFlBQ3hCLENBQUNHLFlBQVdDLFlBQVdILGdCQUNoQyxFRDFDUUssQ0FBMkJqQyxFQUFjQyxFQUFHQyxHQUN2Q3RLLE1BQU1zTSxJQUNQL0IsRUFBSytCLGNBQWdCQSxFQUNyQkMsWUFBWWhDLEVBQUssR0FFekIsQ0FDQSxNQUFPckwsR0FDSHFMLEVBQUtpQyxNQUFRdE4sRUFDYnFOLFlBQVloQyxFQUNoQixHIiwic291cmNlcyI6WyJ3ZWJwYWNrOi8vZWRhLy4vbm9kZV9tb2R1bGVzL0BkYXRhZ3Jvay1saWJyYXJpZXMvbWF0aC9zcmMvaGllcmFyY2hpY2FsLWNsdXN0ZXJpbmcvd2FzbS93YXNtQ2x1c3Rlci5qcyIsIndlYnBhY2s6Ly9lZGEvd2VicGFjay9ib290c3RyYXAiLCJ3ZWJwYWNrOi8vZWRhL3dlYnBhY2svcnVudGltZS9hbWQgb3B0aW9ucyIsIndlYnBhY2s6Ly9lZGEvd2VicGFjay9ydW50aW1lL2RlZmluZSBwcm9wZXJ0eSBnZXR0ZXJzIiwid2VicGFjazovL2VkYS93ZWJwYWNrL3J1bnRpbWUvZ2xvYmFsIiwid2VicGFjazovL2VkYS93ZWJwYWNrL3J1bnRpbWUvaGFybW9ueSBtb2R1bGUgZGVjb3JhdG9yIiwid2VicGFjazovL2VkYS93ZWJwYWNrL3J1bnRpbWUvaGFzT3duUHJvcGVydHkgc2hvcnRoYW5kIiwid2VicGFjazovL2VkYS93ZWJwYWNrL3J1bnRpbWUvcHVibGljUGF0aCIsIndlYnBhY2s6Ly9lZGEvd2VicGFjay9ydW50aW1lL2ltcG9ydFNjcmlwdHMgY2h1bmsgbG9hZGluZyIsIndlYnBhY2s6Ly9lZGEvLi9ub2RlX21vZHVsZXMvQGRhdGFncm9rLWxpYnJhcmllcy9tYXRoL3NyYy9oaWVyYXJjaGljYWwtY2x1c3RlcmluZy93YXNtL2NsdXN0ZXJpbmctd29ya2VyLmpzIiwid2VicGFjazovL2VkYS8uL25vZGVfbW9kdWxlcy9AZGF0YWdyb2stbGlicmFyaWVzL21hdGgvc3JjL2hpZXJhcmNoaWNhbC1jbHVzdGVyaW5nL3dhc20vY2x1c3Rlcml6ZXJXYXNtLmpzIl0sInNvdXJjZXNDb250ZW50IjpbIlxuZXhwb3J0IHZhciBleHBvcnRDcHBMaWIgPSAoKCkgPT4ge1xuICB2YXIgX3NjcmlwdERpciA9IHR5cGVvZiBkb2N1bWVudCAhPT0gJ3VuZGVmaW5lZCcgJiYgZG9jdW1lbnQuY3VycmVudFNjcmlwdCA/IGRvY3VtZW50LmN1cnJlbnRTY3JpcHQuc3JjIDogdW5kZWZpbmVkO1xuICBcbiAgcmV0dXJuIChcbmZ1bmN0aW9uKGV4cG9ydENwcExpYiA9IHt9KSAge1xuXG52YXIgTW9kdWxlPXR5cGVvZiBleHBvcnRDcHBMaWIhPVwidW5kZWZpbmVkXCI/ZXhwb3J0Q3BwTGliOnt9O3ZhciByZWFkeVByb21pc2VSZXNvbHZlLHJlYWR5UHJvbWlzZVJlamVjdDtNb2R1bGVbXCJyZWFkeVwiXT1uZXcgUHJvbWlzZShmdW5jdGlvbihyZXNvbHZlLHJlamVjdCl7cmVhZHlQcm9taXNlUmVzb2x2ZT1yZXNvbHZlO3JlYWR5UHJvbWlzZVJlamVjdD1yZWplY3R9KTt2YXIgbW9kdWxlT3ZlcnJpZGVzPU9iamVjdC5hc3NpZ24oe30sTW9kdWxlKTt2YXIgYXJndW1lbnRzXz1bXTt2YXIgdGhpc1Byb2dyYW09XCIuL3RoaXMucHJvZ3JhbVwiO3ZhciBxdWl0Xz0oc3RhdHVzLHRvVGhyb3cpPT57dGhyb3cgdG9UaHJvd307dmFyIEVOVklST05NRU5UX0lTX1dFQj10eXBlb2Ygd2luZG93PT1cIm9iamVjdFwiO3ZhciBFTlZJUk9OTUVOVF9JU19XT1JLRVI9dHlwZW9mIGltcG9ydFNjcmlwdHM9PVwiZnVuY3Rpb25cIjt2YXIgRU5WSVJPTk1FTlRfSVNfTk9ERT10eXBlb2YgcHJvY2Vzcz09XCJvYmplY3RcIiYmdHlwZW9mIHByb2Nlc3MudmVyc2lvbnM9PVwib2JqZWN0XCImJnR5cGVvZiBwcm9jZXNzLnZlcnNpb25zLm5vZGU9PVwic3RyaW5nXCI7dmFyIHNjcmlwdERpcmVjdG9yeT1cIlwiO2Z1bmN0aW9uIGxvY2F0ZUZpbGUocGF0aCl7aWYoTW9kdWxlW1wibG9jYXRlRmlsZVwiXSl7cmV0dXJuIE1vZHVsZVtcImxvY2F0ZUZpbGVcIl0ocGF0aCxzY3JpcHREaXJlY3RvcnkpfXJldHVybiBzY3JpcHREaXJlY3RvcnkrcGF0aH12YXIgcmVhZF8scmVhZEFzeW5jLHJlYWRCaW5hcnksc2V0V2luZG93VGl0bGU7aWYoRU5WSVJPTk1FTlRfSVNfV0VCfHxFTlZJUk9OTUVOVF9JU19XT1JLRVIpe2lmKEVOVklST05NRU5UX0lTX1dPUktFUil7c2NyaXB0RGlyZWN0b3J5PXNlbGYubG9jYXRpb24uaHJlZn1lbHNlIGlmKHR5cGVvZiBkb2N1bWVudCE9XCJ1bmRlZmluZWRcIiYmZG9jdW1lbnQuY3VycmVudFNjcmlwdCl7c2NyaXB0RGlyZWN0b3J5PWRvY3VtZW50LmN1cnJlbnRTY3JpcHQuc3JjfWlmKF9zY3JpcHREaXIpe3NjcmlwdERpcmVjdG9yeT1fc2NyaXB0RGlyfWlmKHNjcmlwdERpcmVjdG9yeS5pbmRleE9mKFwiYmxvYjpcIikhPT0wKXtzY3JpcHREaXJlY3Rvcnk9c2NyaXB0RGlyZWN0b3J5LnN1YnN0cigwLHNjcmlwdERpcmVjdG9yeS5yZXBsYWNlKC9bPyNdLiovLFwiXCIpLmxhc3RJbmRleE9mKFwiL1wiKSsxKX1lbHNle3NjcmlwdERpcmVjdG9yeT1cIlwifXtyZWFkXz11cmw9Pnt2YXIgeGhyPW5ldyBYTUxIdHRwUmVxdWVzdDt4aHIub3BlbihcIkdFVFwiLHVybCxmYWxzZSk7eGhyLnNlbmQobnVsbCk7cmV0dXJuIHhoci5yZXNwb25zZVRleHR9O2lmKEVOVklST05NRU5UX0lTX1dPUktFUil7cmVhZEJpbmFyeT11cmw9Pnt2YXIgeGhyPW5ldyBYTUxIdHRwUmVxdWVzdDt4aHIub3BlbihcIkdFVFwiLHVybCxmYWxzZSk7eGhyLnJlc3BvbnNlVHlwZT1cImFycmF5YnVmZmVyXCI7eGhyLnNlbmQobnVsbCk7cmV0dXJuIG5ldyBVaW50OEFycmF5KHhoci5yZXNwb25zZSl9fXJlYWRBc3luYz0odXJsLG9ubG9hZCxvbmVycm9yKT0+e3ZhciB4aHI9bmV3IFhNTEh0dHBSZXF1ZXN0O3hoci5vcGVuKFwiR0VUXCIsdXJsLHRydWUpO3hoci5yZXNwb25zZVR5cGU9XCJhcnJheWJ1ZmZlclwiO3hoci5vbmxvYWQ9KCk9PntpZih4aHIuc3RhdHVzPT0yMDB8fHhoci5zdGF0dXM9PTAmJnhoci5yZXNwb25zZSl7b25sb2FkKHhoci5yZXNwb25zZSk7cmV0dXJufW9uZXJyb3IoKX07eGhyLm9uZXJyb3I9b25lcnJvcjt4aHIuc2VuZChudWxsKX19c2V0V2luZG93VGl0bGU9dGl0bGU9PmRvY3VtZW50LnRpdGxlPXRpdGxlfWVsc2V7fXZhciBvdXQ9TW9kdWxlW1wicHJpbnRcIl18fGNvbnNvbGUubG9nLmJpbmQoY29uc29sZSk7dmFyIGVycj1Nb2R1bGVbXCJwcmludEVyclwiXXx8Y29uc29sZS53YXJuLmJpbmQoY29uc29sZSk7T2JqZWN0LmFzc2lnbihNb2R1bGUsbW9kdWxlT3ZlcnJpZGVzKTttb2R1bGVPdmVycmlkZXM9bnVsbDtpZihNb2R1bGVbXCJhcmd1bWVudHNcIl0pYXJndW1lbnRzXz1Nb2R1bGVbXCJhcmd1bWVudHNcIl07aWYoTW9kdWxlW1widGhpc1Byb2dyYW1cIl0pdGhpc1Byb2dyYW09TW9kdWxlW1widGhpc1Byb2dyYW1cIl07aWYoTW9kdWxlW1wicXVpdFwiXSlxdWl0Xz1Nb2R1bGVbXCJxdWl0XCJdO3ZhciB3YXNtQmluYXJ5O2lmKE1vZHVsZVtcIndhc21CaW5hcnlcIl0pd2FzbUJpbmFyeT1Nb2R1bGVbXCJ3YXNtQmluYXJ5XCJdO3ZhciBub0V4aXRSdW50aW1lPU1vZHVsZVtcIm5vRXhpdFJ1bnRpbWVcIl18fHRydWU7aWYodHlwZW9mIFdlYkFzc2VtYmx5IT1cIm9iamVjdFwiKXthYm9ydChcIm5vIG5hdGl2ZSB3YXNtIHN1cHBvcnQgZGV0ZWN0ZWRcIil9dmFyIHdhc21NZW1vcnk7dmFyIEFCT1JUPWZhbHNlO3ZhciBFWElUU1RBVFVTO3ZhciBIRUFQOCxIRUFQVTgsSEVBUDE2LEhFQVBVMTYsSEVBUDMyLEhFQVBVMzIsSEVBUEYzMixIRUFQRjY0O2Z1bmN0aW9uIHVwZGF0ZU1lbW9yeVZpZXdzKCl7dmFyIGI9d2FzbU1lbW9yeS5idWZmZXI7TW9kdWxlW1wiSEVBUDhcIl09SEVBUDg9bmV3IEludDhBcnJheShiKTtNb2R1bGVbXCJIRUFQMTZcIl09SEVBUDE2PW5ldyBJbnQxNkFycmF5KGIpO01vZHVsZVtcIkhFQVAzMlwiXT1IRUFQMzI9bmV3IEludDMyQXJyYXkoYik7TW9kdWxlW1wiSEVBUFU4XCJdPUhFQVBVOD1uZXcgVWludDhBcnJheShiKTtNb2R1bGVbXCJIRUFQVTE2XCJdPUhFQVBVMTY9bmV3IFVpbnQxNkFycmF5KGIpO01vZHVsZVtcIkhFQVBVMzJcIl09SEVBUFUzMj1uZXcgVWludDMyQXJyYXkoYik7TW9kdWxlW1wiSEVBUEYzMlwiXT1IRUFQRjMyPW5ldyBGbG9hdDMyQXJyYXkoYik7TW9kdWxlW1wiSEVBUEY2NFwiXT1IRUFQRjY0PW5ldyBGbG9hdDY0QXJyYXkoYil9dmFyIHdhc21UYWJsZTt2YXIgX19BVFBSRVJVTl9fPVtdO3ZhciBfX0FUSU5JVF9fPVtdO3ZhciBfX0FUUE9TVFJVTl9fPVtdO3ZhciBydW50aW1lSW5pdGlhbGl6ZWQ9ZmFsc2U7ZnVuY3Rpb24gcHJlUnVuKCl7aWYoTW9kdWxlW1wicHJlUnVuXCJdKXtpZih0eXBlb2YgTW9kdWxlW1wicHJlUnVuXCJdPT1cImZ1bmN0aW9uXCIpTW9kdWxlW1wicHJlUnVuXCJdPVtNb2R1bGVbXCJwcmVSdW5cIl1dO3doaWxlKE1vZHVsZVtcInByZVJ1blwiXS5sZW5ndGgpe2FkZE9uUHJlUnVuKE1vZHVsZVtcInByZVJ1blwiXS5zaGlmdCgpKX19Y2FsbFJ1bnRpbWVDYWxsYmFja3MoX19BVFBSRVJVTl9fKX1mdW5jdGlvbiBpbml0UnVudGltZSgpe3J1bnRpbWVJbml0aWFsaXplZD10cnVlO2NhbGxSdW50aW1lQ2FsbGJhY2tzKF9fQVRJTklUX18pfWZ1bmN0aW9uIHBvc3RSdW4oKXtpZihNb2R1bGVbXCJwb3N0UnVuXCJdKXtpZih0eXBlb2YgTW9kdWxlW1wicG9zdFJ1blwiXT09XCJmdW5jdGlvblwiKU1vZHVsZVtcInBvc3RSdW5cIl09W01vZHVsZVtcInBvc3RSdW5cIl1dO3doaWxlKE1vZHVsZVtcInBvc3RSdW5cIl0ubGVuZ3RoKXthZGRPblBvc3RSdW4oTW9kdWxlW1wicG9zdFJ1blwiXS5zaGlmdCgpKX19Y2FsbFJ1bnRpbWVDYWxsYmFja3MoX19BVFBPU1RSVU5fXyl9ZnVuY3Rpb24gYWRkT25QcmVSdW4oY2Ipe19fQVRQUkVSVU5fXy51bnNoaWZ0KGNiKX1mdW5jdGlvbiBhZGRPbkluaXQoY2Ipe19fQVRJTklUX18udW5zaGlmdChjYil9ZnVuY3Rpb24gYWRkT25Qb3N0UnVuKGNiKXtfX0FUUE9TVFJVTl9fLnVuc2hpZnQoY2IpfXZhciBydW5EZXBlbmRlbmNpZXM9MDt2YXIgcnVuRGVwZW5kZW5jeVdhdGNoZXI9bnVsbDt2YXIgZGVwZW5kZW5jaWVzRnVsZmlsbGVkPW51bGw7ZnVuY3Rpb24gYWRkUnVuRGVwZW5kZW5jeShpZCl7cnVuRGVwZW5kZW5jaWVzKys7aWYoTW9kdWxlW1wibW9uaXRvclJ1bkRlcGVuZGVuY2llc1wiXSl7TW9kdWxlW1wibW9uaXRvclJ1bkRlcGVuZGVuY2llc1wiXShydW5EZXBlbmRlbmNpZXMpfX1mdW5jdGlvbiByZW1vdmVSdW5EZXBlbmRlbmN5KGlkKXtydW5EZXBlbmRlbmNpZXMtLTtpZihNb2R1bGVbXCJtb25pdG9yUnVuRGVwZW5kZW5jaWVzXCJdKXtNb2R1bGVbXCJtb25pdG9yUnVuRGVwZW5kZW5jaWVzXCJdKHJ1bkRlcGVuZGVuY2llcyl9aWYocnVuRGVwZW5kZW5jaWVzPT0wKXtpZihydW5EZXBlbmRlbmN5V2F0Y2hlciE9PW51bGwpe2NsZWFySW50ZXJ2YWwocnVuRGVwZW5kZW5jeVdhdGNoZXIpO3J1bkRlcGVuZGVuY3lXYXRjaGVyPW51bGx9aWYoZGVwZW5kZW5jaWVzRnVsZmlsbGVkKXt2YXIgY2FsbGJhY2s9ZGVwZW5kZW5jaWVzRnVsZmlsbGVkO2RlcGVuZGVuY2llc0Z1bGZpbGxlZD1udWxsO2NhbGxiYWNrKCl9fX1mdW5jdGlvbiBhYm9ydCh3aGF0KXtpZihNb2R1bGVbXCJvbkFib3J0XCJdKXtNb2R1bGVbXCJvbkFib3J0XCJdKHdoYXQpfXdoYXQ9XCJBYm9ydGVkKFwiK3doYXQrXCIpXCI7ZXJyKHdoYXQpO0FCT1JUPXRydWU7RVhJVFNUQVRVUz0xO3doYXQrPVwiLiBCdWlsZCB3aXRoIC1zQVNTRVJUSU9OUyBmb3IgbW9yZSBpbmZvLlwiO3ZhciBlPW5ldyBXZWJBc3NlbWJseS5SdW50aW1lRXJyb3Iod2hhdCk7cmVhZHlQcm9taXNlUmVqZWN0KGUpO3Rocm93IGV9dmFyIGRhdGFVUklQcmVmaXg9XCJkYXRhOmFwcGxpY2F0aW9uL29jdGV0LXN0cmVhbTtiYXNlNjQsXCI7ZnVuY3Rpb24gaXNEYXRhVVJJKGZpbGVuYW1lKXtyZXR1cm4gZmlsZW5hbWUuc3RhcnRzV2l0aChkYXRhVVJJUHJlZml4KX12YXIgd2FzbUJpbmFyeUZpbGU7d2FzbUJpbmFyeUZpbGU9XCJ3YXNtQ2x1c3Rlci53YXNtXCI7aWYoIWlzRGF0YVVSSSh3YXNtQmluYXJ5RmlsZSkpe3dhc21CaW5hcnlGaWxlPWxvY2F0ZUZpbGUod2FzbUJpbmFyeUZpbGUpfWZ1bmN0aW9uIGdldEJpbmFyeShmaWxlKXt0cnl7aWYoZmlsZT09d2FzbUJpbmFyeUZpbGUmJndhc21CaW5hcnkpe3JldHVybiBuZXcgVWludDhBcnJheSh3YXNtQmluYXJ5KX1pZihyZWFkQmluYXJ5KXtyZXR1cm4gcmVhZEJpbmFyeShmaWxlKX10aHJvd1wiYm90aCBhc3luYyBhbmQgc3luYyBmZXRjaGluZyBvZiB0aGUgd2FzbSBmYWlsZWRcIn1jYXRjaChlcnIpe2Fib3J0KGVycil9fWZ1bmN0aW9uIGdldEJpbmFyeVByb21pc2UoYmluYXJ5RmlsZSl7aWYoIXdhc21CaW5hcnkmJihFTlZJUk9OTUVOVF9JU19XRUJ8fEVOVklST05NRU5UX0lTX1dPUktFUikpe2lmKHR5cGVvZiBmZXRjaD09XCJmdW5jdGlvblwiKXtyZXR1cm4gZmV0Y2goYmluYXJ5RmlsZSx7Y3JlZGVudGlhbHM6XCJzYW1lLW9yaWdpblwifSkudGhlbihmdW5jdGlvbihyZXNwb25zZSl7aWYoIXJlc3BvbnNlW1wib2tcIl0pe3Rocm93XCJmYWlsZWQgdG8gbG9hZCB3YXNtIGJpbmFyeSBmaWxlIGF0ICdcIitiaW5hcnlGaWxlK1wiJ1wifXJldHVybiByZXNwb25zZVtcImFycmF5QnVmZmVyXCJdKCl9KS5jYXRjaChmdW5jdGlvbigpe3JldHVybiBnZXRCaW5hcnkoYmluYXJ5RmlsZSl9KX19cmV0dXJuIFByb21pc2UucmVzb2x2ZSgpLnRoZW4oZnVuY3Rpb24oKXtyZXR1cm4gZ2V0QmluYXJ5KGJpbmFyeUZpbGUpfSl9ZnVuY3Rpb24gaW5zdGFudGlhdGVBcnJheUJ1ZmZlcihiaW5hcnlGaWxlLGltcG9ydHMscmVjZWl2ZXIpe3JldHVybiBnZXRCaW5hcnlQcm9taXNlKGJpbmFyeUZpbGUpLnRoZW4oZnVuY3Rpb24oYmluYXJ5KXtyZXR1cm4gV2ViQXNzZW1ibHkuaW5zdGFudGlhdGUoYmluYXJ5LGltcG9ydHMpfSkudGhlbihmdW5jdGlvbihpbnN0YW5jZSl7cmV0dXJuIGluc3RhbmNlfSkudGhlbihyZWNlaXZlcixmdW5jdGlvbihyZWFzb24pe2VycihcImZhaWxlZCB0byBhc3luY2hyb25vdXNseSBwcmVwYXJlIHdhc206IFwiK3JlYXNvbik7YWJvcnQocmVhc29uKX0pfWZ1bmN0aW9uIGluc3RhbnRpYXRlQXN5bmMoYmluYXJ5LGJpbmFyeUZpbGUsaW1wb3J0cyxjYWxsYmFjayl7aWYoIWJpbmFyeSYmdHlwZW9mIFdlYkFzc2VtYmx5Lmluc3RhbnRpYXRlU3RyZWFtaW5nPT1cImZ1bmN0aW9uXCImJiFpc0RhdGFVUkkoYmluYXJ5RmlsZSkmJnR5cGVvZiBmZXRjaD09XCJmdW5jdGlvblwiKXtyZXR1cm4gZmV0Y2goYmluYXJ5RmlsZSx7Y3JlZGVudGlhbHM6XCJzYW1lLW9yaWdpblwifSkudGhlbihmdW5jdGlvbihyZXNwb25zZSl7dmFyIHJlc3VsdD1XZWJBc3NlbWJseS5pbnN0YW50aWF0ZVN0cmVhbWluZyhyZXNwb25zZSxpbXBvcnRzKTtyZXR1cm4gcmVzdWx0LnRoZW4oY2FsbGJhY2ssZnVuY3Rpb24ocmVhc29uKXtlcnIoXCJ3YXNtIHN0cmVhbWluZyBjb21waWxlIGZhaWxlZDogXCIrcmVhc29uKTtlcnIoXCJmYWxsaW5nIGJhY2sgdG8gQXJyYXlCdWZmZXIgaW5zdGFudGlhdGlvblwiKTtyZXR1cm4gaW5zdGFudGlhdGVBcnJheUJ1ZmZlcihiaW5hcnlGaWxlLGltcG9ydHMsY2FsbGJhY2spfSl9KX1lbHNle3JldHVybiBpbnN0YW50aWF0ZUFycmF5QnVmZmVyKGJpbmFyeUZpbGUsaW1wb3J0cyxjYWxsYmFjayl9fWZ1bmN0aW9uIGNyZWF0ZVdhc20oKXt2YXIgaW5mbz17XCJhXCI6d2FzbUltcG9ydHN9O2Z1bmN0aW9uIHJlY2VpdmVJbnN0YW5jZShpbnN0YW5jZSxtb2R1bGUpe3ZhciBleHBvcnRzPWluc3RhbmNlLmV4cG9ydHM7TW9kdWxlW1wiYXNtXCJdPWV4cG9ydHM7d2FzbU1lbW9yeT1Nb2R1bGVbXCJhc21cIl1bXCJlXCJdO3VwZGF0ZU1lbW9yeVZpZXdzKCk7d2FzbVRhYmxlPU1vZHVsZVtcImFzbVwiXVtcImlcIl07YWRkT25Jbml0KE1vZHVsZVtcImFzbVwiXVtcImZcIl0pO3JlbW92ZVJ1bkRlcGVuZGVuY3koXCJ3YXNtLWluc3RhbnRpYXRlXCIpO3JldHVybiBleHBvcnRzfWFkZFJ1bkRlcGVuZGVuY3koXCJ3YXNtLWluc3RhbnRpYXRlXCIpO2Z1bmN0aW9uIHJlY2VpdmVJbnN0YW50aWF0aW9uUmVzdWx0KHJlc3VsdCl7cmVjZWl2ZUluc3RhbmNlKHJlc3VsdFtcImluc3RhbmNlXCJdKX1pZihNb2R1bGVbXCJpbnN0YW50aWF0ZVdhc21cIl0pe3RyeXtyZXR1cm4gTW9kdWxlW1wiaW5zdGFudGlhdGVXYXNtXCJdKGluZm8scmVjZWl2ZUluc3RhbmNlKX1jYXRjaChlKXtlcnIoXCJNb2R1bGUuaW5zdGFudGlhdGVXYXNtIGNhbGxiYWNrIGZhaWxlZCB3aXRoIGVycm9yOiBcIitlKTtyZWFkeVByb21pc2VSZWplY3QoZSl9fWluc3RhbnRpYXRlQXN5bmMod2FzbUJpbmFyeSx3YXNtQmluYXJ5RmlsZSxpbmZvLHJlY2VpdmVJbnN0YW50aWF0aW9uUmVzdWx0KS5jYXRjaChyZWFkeVByb21pc2VSZWplY3QpO3JldHVybnt9fWZ1bmN0aW9uIGNhbGxSdW50aW1lQ2FsbGJhY2tzKGNhbGxiYWNrcyl7d2hpbGUoY2FsbGJhY2tzLmxlbmd0aD4wKXtjYWxsYmFja3Muc2hpZnQoKShNb2R1bGUpfX1mdW5jdGlvbiBFeGNlcHRpb25JbmZvKGV4Y1B0cil7dGhpcy5leGNQdHI9ZXhjUHRyO3RoaXMucHRyPWV4Y1B0ci0yNDt0aGlzLnNldF90eXBlPWZ1bmN0aW9uKHR5cGUpe0hFQVBVMzJbdGhpcy5wdHIrND4+Ml09dHlwZX07dGhpcy5nZXRfdHlwZT1mdW5jdGlvbigpe3JldHVybiBIRUFQVTMyW3RoaXMucHRyKzQ+PjJdfTt0aGlzLnNldF9kZXN0cnVjdG9yPWZ1bmN0aW9uKGRlc3RydWN0b3Ipe0hFQVBVMzJbdGhpcy5wdHIrOD4+Ml09ZGVzdHJ1Y3Rvcn07dGhpcy5nZXRfZGVzdHJ1Y3Rvcj1mdW5jdGlvbigpe3JldHVybiBIRUFQVTMyW3RoaXMucHRyKzg+PjJdfTt0aGlzLnNldF9jYXVnaHQ9ZnVuY3Rpb24oY2F1Z2h0KXtjYXVnaHQ9Y2F1Z2h0PzE6MDtIRUFQOFt0aGlzLnB0cisxMj4+MF09Y2F1Z2h0fTt0aGlzLmdldF9jYXVnaHQ9ZnVuY3Rpb24oKXtyZXR1cm4gSEVBUDhbdGhpcy5wdHIrMTI+PjBdIT0wfTt0aGlzLnNldF9yZXRocm93bj1mdW5jdGlvbihyZXRocm93bil7cmV0aHJvd249cmV0aHJvd24/MTowO0hFQVA4W3RoaXMucHRyKzEzPj4wXT1yZXRocm93bn07dGhpcy5nZXRfcmV0aHJvd249ZnVuY3Rpb24oKXtyZXR1cm4gSEVBUDhbdGhpcy5wdHIrMTM+PjBdIT0wfTt0aGlzLmluaXQ9ZnVuY3Rpb24odHlwZSxkZXN0cnVjdG9yKXt0aGlzLnNldF9hZGp1c3RlZF9wdHIoMCk7dGhpcy5zZXRfdHlwZSh0eXBlKTt0aGlzLnNldF9kZXN0cnVjdG9yKGRlc3RydWN0b3IpfTt0aGlzLnNldF9hZGp1c3RlZF9wdHI9ZnVuY3Rpb24oYWRqdXN0ZWRQdHIpe0hFQVBVMzJbdGhpcy5wdHIrMTY+PjJdPWFkanVzdGVkUHRyfTt0aGlzLmdldF9hZGp1c3RlZF9wdHI9ZnVuY3Rpb24oKXtyZXR1cm4gSEVBUFUzMlt0aGlzLnB0cisxNj4+Ml19O3RoaXMuZ2V0X2V4Y2VwdGlvbl9wdHI9ZnVuY3Rpb24oKXt2YXIgaXNQb2ludGVyPV9fX2N4YV9pc19wb2ludGVyX3R5cGUodGhpcy5nZXRfdHlwZSgpKTtpZihpc1BvaW50ZXIpe3JldHVybiBIRUFQVTMyW3RoaXMuZXhjUHRyPj4yXX12YXIgYWRqdXN0ZWQ9dGhpcy5nZXRfYWRqdXN0ZWRfcHRyKCk7aWYoYWRqdXN0ZWQhPT0wKXJldHVybiBhZGp1c3RlZDtyZXR1cm4gdGhpcy5leGNQdHJ9fXZhciBleGNlcHRpb25MYXN0PTA7dmFyIHVuY2F1Z2h0RXhjZXB0aW9uQ291bnQ9MDtmdW5jdGlvbiBfX19jeGFfdGhyb3cocHRyLHR5cGUsZGVzdHJ1Y3Rvcil7dmFyIGluZm89bmV3IEV4Y2VwdGlvbkluZm8ocHRyKTtpbmZvLmluaXQodHlwZSxkZXN0cnVjdG9yKTtleGNlcHRpb25MYXN0PXB0cjt1bmNhdWdodEV4Y2VwdGlvbkNvdW50Kys7dGhyb3cgZXhjZXB0aW9uTGFzdH1mdW5jdGlvbiBfYWJvcnQoKXthYm9ydChcIlwiKX1mdW5jdGlvbiBfZW1zY3JpcHRlbl9tZW1jcHlfYmlnKGRlc3Qsc3JjLG51bSl7SEVBUFU4LmNvcHlXaXRoaW4oZGVzdCxzcmMsc3JjK251bSl9ZnVuY3Rpb24gZ2V0SGVhcE1heCgpe3JldHVybiAyMTQ3NDgzNjQ4fWZ1bmN0aW9uIGVtc2NyaXB0ZW5fcmVhbGxvY19idWZmZXIoc2l6ZSl7dmFyIGI9d2FzbU1lbW9yeS5idWZmZXI7dHJ5e3dhc21NZW1vcnkuZ3JvdyhzaXplLWIuYnl0ZUxlbmd0aCs2NTUzNT4+PjE2KTt1cGRhdGVNZW1vcnlWaWV3cygpO3JldHVybiAxfWNhdGNoKGUpe319ZnVuY3Rpb24gX2Vtc2NyaXB0ZW5fcmVzaXplX2hlYXAocmVxdWVzdGVkU2l6ZSl7dmFyIG9sZFNpemU9SEVBUFU4Lmxlbmd0aDtyZXF1ZXN0ZWRTaXplPXJlcXVlc3RlZFNpemU+Pj4wO3ZhciBtYXhIZWFwU2l6ZT1nZXRIZWFwTWF4KCk7aWYocmVxdWVzdGVkU2l6ZT5tYXhIZWFwU2l6ZSl7cmV0dXJuIGZhbHNlfWxldCBhbGlnblVwPSh4LG11bHRpcGxlKT0+eCsobXVsdGlwbGUteCVtdWx0aXBsZSklbXVsdGlwbGU7Zm9yKHZhciBjdXREb3duPTE7Y3V0RG93bjw9NDtjdXREb3duKj0yKXt2YXIgb3Zlckdyb3duSGVhcFNpemU9b2xkU2l6ZSooMSsuMi9jdXREb3duKTtvdmVyR3Jvd25IZWFwU2l6ZT1NYXRoLm1pbihvdmVyR3Jvd25IZWFwU2l6ZSxyZXF1ZXN0ZWRTaXplKzEwMDY2MzI5Nik7dmFyIG5ld1NpemU9TWF0aC5taW4obWF4SGVhcFNpemUsYWxpZ25VcChNYXRoLm1heChyZXF1ZXN0ZWRTaXplLG92ZXJHcm93bkhlYXBTaXplKSw2NTUzNikpO3ZhciByZXBsYWNlbWVudD1lbXNjcmlwdGVuX3JlYWxsb2NfYnVmZmVyKG5ld1NpemUpO2lmKHJlcGxhY2VtZW50KXtyZXR1cm4gdHJ1ZX19cmV0dXJuIGZhbHNlfWZ1bmN0aW9uIGdldENGdW5jKGlkZW50KXt2YXIgZnVuYz1Nb2R1bGVbXCJfXCIraWRlbnRdO3JldHVybiBmdW5jfWZ1bmN0aW9uIHdyaXRlQXJyYXlUb01lbW9yeShhcnJheSxidWZmZXIpe0hFQVA4LnNldChhcnJheSxidWZmZXIpfWZ1bmN0aW9uIGxlbmd0aEJ5dGVzVVRGOChzdHIpe3ZhciBsZW49MDtmb3IodmFyIGk9MDtpPHN0ci5sZW5ndGg7KytpKXt2YXIgYz1zdHIuY2hhckNvZGVBdChpKTtpZihjPD0xMjcpe2xlbisrfWVsc2UgaWYoYzw9MjA0Nyl7bGVuKz0yfWVsc2UgaWYoYz49NTUyOTYmJmM8PTU3MzQzKXtsZW4rPTQ7KytpfWVsc2V7bGVuKz0zfX1yZXR1cm4gbGVufWZ1bmN0aW9uIHN0cmluZ1RvVVRGOEFycmF5KHN0cixoZWFwLG91dElkeCxtYXhCeXRlc1RvV3JpdGUpe2lmKCEobWF4Qnl0ZXNUb1dyaXRlPjApKXJldHVybiAwO3ZhciBzdGFydElkeD1vdXRJZHg7dmFyIGVuZElkeD1vdXRJZHgrbWF4Qnl0ZXNUb1dyaXRlLTE7Zm9yKHZhciBpPTA7aTxzdHIubGVuZ3RoOysraSl7dmFyIHU9c3RyLmNoYXJDb2RlQXQoaSk7aWYodT49NTUyOTYmJnU8PTU3MzQzKXt2YXIgdTE9c3RyLmNoYXJDb2RlQXQoKytpKTt1PTY1NTM2KygodSYxMDIzKTw8MTApfHUxJjEwMjN9aWYodTw9MTI3KXtpZihvdXRJZHg+PWVuZElkeClicmVhaztoZWFwW291dElkeCsrXT11fWVsc2UgaWYodTw9MjA0Nyl7aWYob3V0SWR4KzE+PWVuZElkeClicmVhaztoZWFwW291dElkeCsrXT0xOTJ8dT4+NjtoZWFwW291dElkeCsrXT0xMjh8dSY2M31lbHNlIGlmKHU8PTY1NTM1KXtpZihvdXRJZHgrMj49ZW5kSWR4KWJyZWFrO2hlYXBbb3V0SWR4KytdPTIyNHx1Pj4xMjtoZWFwW291dElkeCsrXT0xMjh8dT4+NiY2MztoZWFwW291dElkeCsrXT0xMjh8dSY2M31lbHNle2lmKG91dElkeCszPj1lbmRJZHgpYnJlYWs7aGVhcFtvdXRJZHgrK109MjQwfHU+PjE4O2hlYXBbb3V0SWR4KytdPTEyOHx1Pj4xMiY2MztoZWFwW291dElkeCsrXT0xMjh8dT4+NiY2MztoZWFwW291dElkeCsrXT0xMjh8dSY2M319aGVhcFtvdXRJZHhdPTA7cmV0dXJuIG91dElkeC1zdGFydElkeH1mdW5jdGlvbiBzdHJpbmdUb1VURjgoc3RyLG91dFB0cixtYXhCeXRlc1RvV3JpdGUpe3JldHVybiBzdHJpbmdUb1VURjhBcnJheShzdHIsSEVBUFU4LG91dFB0cixtYXhCeXRlc1RvV3JpdGUpfWZ1bmN0aW9uIHN0cmluZ1RvVVRGOE9uU3RhY2soc3RyKXt2YXIgc2l6ZT1sZW5ndGhCeXRlc1VURjgoc3RyKSsxO3ZhciByZXQ9c3RhY2tBbGxvYyhzaXplKTtzdHJpbmdUb1VURjgoc3RyLHJldCxzaXplKTtyZXR1cm4gcmV0fXZhciBVVEY4RGVjb2Rlcj10eXBlb2YgVGV4dERlY29kZXIhPVwidW5kZWZpbmVkXCI/bmV3IFRleHREZWNvZGVyKFwidXRmOFwiKTp1bmRlZmluZWQ7ZnVuY3Rpb24gVVRGOEFycmF5VG9TdHJpbmcoaGVhcE9yQXJyYXksaWR4LG1heEJ5dGVzVG9SZWFkKXt2YXIgZW5kSWR4PWlkeCttYXhCeXRlc1RvUmVhZDt2YXIgZW5kUHRyPWlkeDt3aGlsZShoZWFwT3JBcnJheVtlbmRQdHJdJiYhKGVuZFB0cj49ZW5kSWR4KSkrK2VuZFB0cjtpZihlbmRQdHItaWR4PjE2JiZoZWFwT3JBcnJheS5idWZmZXImJlVURjhEZWNvZGVyKXtyZXR1cm4gVVRGOERlY29kZXIuZGVjb2RlKGhlYXBPckFycmF5LnN1YmFycmF5KGlkeCxlbmRQdHIpKX12YXIgc3RyPVwiXCI7d2hpbGUoaWR4PGVuZFB0cil7dmFyIHUwPWhlYXBPckFycmF5W2lkeCsrXTtpZighKHUwJjEyOCkpe3N0cis9U3RyaW5nLmZyb21DaGFyQ29kZSh1MCk7Y29udGludWV9dmFyIHUxPWhlYXBPckFycmF5W2lkeCsrXSY2MztpZigodTAmMjI0KT09MTkyKXtzdHIrPVN0cmluZy5mcm9tQ2hhckNvZGUoKHUwJjMxKTw8Nnx1MSk7Y29udGludWV9dmFyIHUyPWhlYXBPckFycmF5W2lkeCsrXSY2MztpZigodTAmMjQwKT09MjI0KXt1MD0odTAmMTUpPDwxMnx1MTw8Nnx1Mn1lbHNle3UwPSh1MCY3KTw8MTh8dTE8PDEyfHUyPDw2fGhlYXBPckFycmF5W2lkeCsrXSY2M31pZih1MDw2NTUzNil7c3RyKz1TdHJpbmcuZnJvbUNoYXJDb2RlKHUwKX1lbHNle3ZhciBjaD11MC02NTUzNjtzdHIrPVN0cmluZy5mcm9tQ2hhckNvZGUoNTUyOTZ8Y2g+PjEwLDU2MzIwfGNoJjEwMjMpfX1yZXR1cm4gc3RyfWZ1bmN0aW9uIFVURjhUb1N0cmluZyhwdHIsbWF4Qnl0ZXNUb1JlYWQpe3JldHVybiBwdHI/VVRGOEFycmF5VG9TdHJpbmcoSEVBUFU4LHB0cixtYXhCeXRlc1RvUmVhZCk6XCJcIn1mdW5jdGlvbiBjY2FsbChpZGVudCxyZXR1cm5UeXBlLGFyZ1R5cGVzLGFyZ3Msb3B0cyl7dmFyIHRvQz17XCJzdHJpbmdcIjpzdHI9Pnt2YXIgcmV0PTA7aWYoc3RyIT09bnVsbCYmc3RyIT09dW5kZWZpbmVkJiZzdHIhPT0wKXtyZXQ9c3RyaW5nVG9VVEY4T25TdGFjayhzdHIpfXJldHVybiByZXR9LFwiYXJyYXlcIjphcnI9Pnt2YXIgcmV0PXN0YWNrQWxsb2MoYXJyLmxlbmd0aCk7d3JpdGVBcnJheVRvTWVtb3J5KGFycixyZXQpO3JldHVybiByZXR9fTtmdW5jdGlvbiBjb252ZXJ0UmV0dXJuVmFsdWUocmV0KXtpZihyZXR1cm5UeXBlPT09XCJzdHJpbmdcIil7cmV0dXJuIFVURjhUb1N0cmluZyhyZXQpfWlmKHJldHVyblR5cGU9PT1cImJvb2xlYW5cIilyZXR1cm4gQm9vbGVhbihyZXQpO3JldHVybiByZXR9dmFyIGZ1bmM9Z2V0Q0Z1bmMoaWRlbnQpO3ZhciBjQXJncz1bXTt2YXIgc3RhY2s9MDtpZihhcmdzKXtmb3IodmFyIGk9MDtpPGFyZ3MubGVuZ3RoO2krKyl7dmFyIGNvbnZlcnRlcj10b0NbYXJnVHlwZXNbaV1dO2lmKGNvbnZlcnRlcil7aWYoc3RhY2s9PT0wKXN0YWNrPXN0YWNrU2F2ZSgpO2NBcmdzW2ldPWNvbnZlcnRlcihhcmdzW2ldKX1lbHNle2NBcmdzW2ldPWFyZ3NbaV19fX12YXIgcmV0PWZ1bmMuYXBwbHkobnVsbCxjQXJncyk7ZnVuY3Rpb24gb25Eb25lKHJldCl7aWYoc3RhY2shPT0wKXN0YWNrUmVzdG9yZShzdGFjayk7cmV0dXJuIGNvbnZlcnRSZXR1cm5WYWx1ZShyZXQpfXJldD1vbkRvbmUocmV0KTtyZXR1cm4gcmV0fWZ1bmN0aW9uIGN3cmFwKGlkZW50LHJldHVyblR5cGUsYXJnVHlwZXMsb3B0cyl7dmFyIG51bWVyaWNBcmdzPSFhcmdUeXBlc3x8YXJnVHlwZXMuZXZlcnkodHlwZT0+dHlwZT09PVwibnVtYmVyXCJ8fHR5cGU9PT1cImJvb2xlYW5cIik7dmFyIG51bWVyaWNSZXQ9cmV0dXJuVHlwZSE9PVwic3RyaW5nXCI7aWYobnVtZXJpY1JldCYmbnVtZXJpY0FyZ3MmJiFvcHRzKXtyZXR1cm4gZ2V0Q0Z1bmMoaWRlbnQpfXJldHVybiBmdW5jdGlvbigpe3JldHVybiBjY2FsbChpZGVudCxyZXR1cm5UeXBlLGFyZ1R5cGVzLGFyZ3VtZW50cyxvcHRzKX19dmFyIHdhc21JbXBvcnRzPXtcImRcIjpfX19jeGFfdGhyb3csXCJhXCI6X2Fib3J0LFwiY1wiOl9lbXNjcmlwdGVuX21lbWNweV9iaWcsXCJiXCI6X2Vtc2NyaXB0ZW5fcmVzaXplX2hlYXB9O3ZhciBhc209Y3JlYXRlV2FzbSgpO3ZhciBfX193YXNtX2NhbGxfY3RvcnM9ZnVuY3Rpb24oKXtyZXR1cm4oX19fd2FzbV9jYWxsX2N0b3JzPU1vZHVsZVtcImFzbVwiXVtcImZcIl0pLmFwcGx5KG51bGwsYXJndW1lbnRzKX07dmFyIF9nZXREZW5kcm9ncmFtPU1vZHVsZVtcIl9nZXREZW5kcm9ncmFtXCJdPWZ1bmN0aW9uKCl7cmV0dXJuKF9nZXREZW5kcm9ncmFtPU1vZHVsZVtcIl9nZXREZW5kcm9ncmFtXCJdPU1vZHVsZVtcImFzbVwiXVtcImdcIl0pLmFwcGx5KG51bGwsYXJndW1lbnRzKX07dmFyIF9mcmVlPU1vZHVsZVtcIl9mcmVlXCJdPWZ1bmN0aW9uKCl7cmV0dXJuKF9mcmVlPU1vZHVsZVtcIl9mcmVlXCJdPU1vZHVsZVtcImFzbVwiXVtcImhcIl0pLmFwcGx5KG51bGwsYXJndW1lbnRzKX07dmFyIF9fX2Vycm5vX2xvY2F0aW9uPWZ1bmN0aW9uKCl7cmV0dXJuKF9fX2Vycm5vX2xvY2F0aW9uPU1vZHVsZVtcImFzbVwiXVtcIl9fZXJybm9fbG9jYXRpb25cIl0pLmFwcGx5KG51bGwsYXJndW1lbnRzKX07dmFyIF9tYWxsb2M9TW9kdWxlW1wiX21hbGxvY1wiXT1mdW5jdGlvbigpe3JldHVybihfbWFsbG9jPU1vZHVsZVtcIl9tYWxsb2NcIl09TW9kdWxlW1wiYXNtXCJdW1wialwiXSkuYXBwbHkobnVsbCxhcmd1bWVudHMpfTt2YXIgc3RhY2tTYXZlPWZ1bmN0aW9uKCl7cmV0dXJuKHN0YWNrU2F2ZT1Nb2R1bGVbXCJhc21cIl1bXCJrXCJdKS5hcHBseShudWxsLGFyZ3VtZW50cyl9O3ZhciBzdGFja1Jlc3RvcmU9ZnVuY3Rpb24oKXtyZXR1cm4oc3RhY2tSZXN0b3JlPU1vZHVsZVtcImFzbVwiXVtcImxcIl0pLmFwcGx5KG51bGwsYXJndW1lbnRzKX07dmFyIHN0YWNrQWxsb2M9ZnVuY3Rpb24oKXtyZXR1cm4oc3RhY2tBbGxvYz1Nb2R1bGVbXCJhc21cIl1bXCJtXCJdKS5hcHBseShudWxsLGFyZ3VtZW50cyl9O3ZhciBfX19jeGFfaXNfcG9pbnRlcl90eXBlPWZ1bmN0aW9uKCl7cmV0dXJuKF9fX2N4YV9pc19wb2ludGVyX3R5cGU9TW9kdWxlW1wiYXNtXCJdW1wiblwiXSkuYXBwbHkobnVsbCxhcmd1bWVudHMpfTtNb2R1bGVbXCJjY2FsbFwiXT1jY2FsbDtNb2R1bGVbXCJjd3JhcFwiXT1jd3JhcDt2YXIgY2FsbGVkUnVuO2RlcGVuZGVuY2llc0Z1bGZpbGxlZD1mdW5jdGlvbiBydW5DYWxsZXIoKXtpZighY2FsbGVkUnVuKXJ1bigpO2lmKCFjYWxsZWRSdW4pZGVwZW5kZW5jaWVzRnVsZmlsbGVkPXJ1bkNhbGxlcn07ZnVuY3Rpb24gcnVuKCl7aWYocnVuRGVwZW5kZW5jaWVzPjApe3JldHVybn1wcmVSdW4oKTtpZihydW5EZXBlbmRlbmNpZXM+MCl7cmV0dXJufWZ1bmN0aW9uIGRvUnVuKCl7aWYoY2FsbGVkUnVuKXJldHVybjtjYWxsZWRSdW49dHJ1ZTtNb2R1bGVbXCJjYWxsZWRSdW5cIl09dHJ1ZTtpZihBQk9SVClyZXR1cm47aW5pdFJ1bnRpbWUoKTtyZWFkeVByb21pc2VSZXNvbHZlKE1vZHVsZSk7aWYoTW9kdWxlW1wib25SdW50aW1lSW5pdGlhbGl6ZWRcIl0pTW9kdWxlW1wib25SdW50aW1lSW5pdGlhbGl6ZWRcIl0oKTtwb3N0UnVuKCl9aWYoTW9kdWxlW1wic2V0U3RhdHVzXCJdKXtNb2R1bGVbXCJzZXRTdGF0dXNcIl0oXCJSdW5uaW5nLi4uXCIpO3NldFRpbWVvdXQoZnVuY3Rpb24oKXtzZXRUaW1lb3V0KGZ1bmN0aW9uKCl7TW9kdWxlW1wic2V0U3RhdHVzXCJdKFwiXCIpfSwxKTtkb1J1bigpfSwxKX1lbHNle2RvUnVuKCl9fWlmKE1vZHVsZVtcInByZUluaXRcIl0pe2lmKHR5cGVvZiBNb2R1bGVbXCJwcmVJbml0XCJdPT1cImZ1bmN0aW9uXCIpTW9kdWxlW1wicHJlSW5pdFwiXT1bTW9kdWxlW1wicHJlSW5pdFwiXV07d2hpbGUoTW9kdWxlW1wicHJlSW5pdFwiXS5sZW5ndGg+MCl7TW9kdWxlW1wicHJlSW5pdFwiXS5wb3AoKSgpfX1ydW4oKTtcblxuXG4gIHJldHVybiBleHBvcnRDcHBMaWIucmVhZHlcbn1cblxuKTtcbn0pKCk7XG5pZiAodHlwZW9mIGV4cG9ydHMgPT09ICdvYmplY3QnICYmIHR5cGVvZiBtb2R1bGUgPT09ICdvYmplY3QnKVxuICBtb2R1bGUuZXhwb3J0cyA9IGV4cG9ydENwcExpYjtcbmVsc2UgaWYgKHR5cGVvZiBkZWZpbmUgPT09ICdmdW5jdGlvbicgJiYgZGVmaW5lWydhbWQnXSlcbiAgZGVmaW5lKFtdLCBmdW5jdGlvbigpIHsgcmV0dXJuIGV4cG9ydENwcExpYjsgfSk7XG5lbHNlIGlmICh0eXBlb2YgZXhwb3J0cyA9PT0gJ29iamVjdCcpXG4gIGV4cG9ydHNbXCJleHBvcnRDcHBMaWJcIl0gPSBleHBvcnRDcHBMaWI7XG4iLCIvLyBUaGUgbW9kdWxlIGNhY2hlXG52YXIgX193ZWJwYWNrX21vZHVsZV9jYWNoZV9fID0ge307XG5cbi8vIFRoZSByZXF1aXJlIGZ1bmN0aW9uXG5mdW5jdGlvbiBfX3dlYnBhY2tfcmVxdWlyZV9fKG1vZHVsZUlkKSB7XG5cdC8vIENoZWNrIGlmIG1vZHVsZSBpcyBpbiBjYWNoZVxuXHR2YXIgY2FjaGVkTW9kdWxlID0gX193ZWJwYWNrX21vZHVsZV9jYWNoZV9fW21vZHVsZUlkXTtcblx0aWYgKGNhY2hlZE1vZHVsZSAhPT0gdW5kZWZpbmVkKSB7XG5cdFx0cmV0dXJuIGNhY2hlZE1vZHVsZS5leHBvcnRzO1xuXHR9XG5cdC8vIENyZWF0ZSBhIG5ldyBtb2R1bGUgKGFuZCBwdXQgaXQgaW50byB0aGUgY2FjaGUpXG5cdHZhciBtb2R1bGUgPSBfX3dlYnBhY2tfbW9kdWxlX2NhY2hlX19bbW9kdWxlSWRdID0ge1xuXHRcdGlkOiBtb2R1bGVJZCxcblx0XHRsb2FkZWQ6IGZhbHNlLFxuXHRcdGV4cG9ydHM6IHt9XG5cdH07XG5cblx0Ly8gRXhlY3V0ZSB0aGUgbW9kdWxlIGZ1bmN0aW9uXG5cdF9fd2VicGFja19tb2R1bGVzX19bbW9kdWxlSWRdKG1vZHVsZSwgbW9kdWxlLmV4cG9ydHMsIF9fd2VicGFja19yZXF1aXJlX18pO1xuXG5cdC8vIEZsYWcgdGhlIG1vZHVsZSBhcyBsb2FkZWRcblx0bW9kdWxlLmxvYWRlZCA9IHRydWU7XG5cblx0Ly8gUmV0dXJuIHRoZSBleHBvcnRzIG9mIHRoZSBtb2R1bGVcblx0cmV0dXJuIG1vZHVsZS5leHBvcnRzO1xufVxuXG4vLyBleHBvc2UgdGhlIG1vZHVsZXMgb2JqZWN0IChfX3dlYnBhY2tfbW9kdWxlc19fKVxuX193ZWJwYWNrX3JlcXVpcmVfXy5tID0gX193ZWJwYWNrX21vZHVsZXNfXztcblxuIiwiX193ZWJwYWNrX3JlcXVpcmVfXy5hbWRPID0ge307IiwiLy8gZGVmaW5lIGdldHRlciBmdW5jdGlvbnMgZm9yIGhhcm1vbnkgZXhwb3J0c1xuX193ZWJwYWNrX3JlcXVpcmVfXy5kID0gKGV4cG9ydHMsIGRlZmluaXRpb24pID0+IHtcblx0Zm9yKHZhciBrZXkgaW4gZGVmaW5pdGlvbikge1xuXHRcdGlmKF9fd2VicGFja19yZXF1aXJlX18ubyhkZWZpbml0aW9uLCBrZXkpICYmICFfX3dlYnBhY2tfcmVxdWlyZV9fLm8oZXhwb3J0cywga2V5KSkge1xuXHRcdFx0T2JqZWN0LmRlZmluZVByb3BlcnR5KGV4cG9ydHMsIGtleSwgeyBlbnVtZXJhYmxlOiB0cnVlLCBnZXQ6IGRlZmluaXRpb25ba2V5XSB9KTtcblx0XHR9XG5cdH1cbn07IiwiX193ZWJwYWNrX3JlcXVpcmVfXy5nID0gKGZ1bmN0aW9uKCkge1xuXHRpZiAodHlwZW9mIGdsb2JhbFRoaXMgPT09ICdvYmplY3QnKSByZXR1cm4gZ2xvYmFsVGhpcztcblx0dHJ5IHtcblx0XHRyZXR1cm4gdGhpcyB8fCBuZXcgRnVuY3Rpb24oJ3JldHVybiB0aGlzJykoKTtcblx0fSBjYXRjaCAoZSkge1xuXHRcdGlmICh0eXBlb2Ygd2luZG93ID09PSAnb2JqZWN0JykgcmV0dXJuIHdpbmRvdztcblx0fVxufSkoKTsiLCJfX3dlYnBhY2tfcmVxdWlyZV9fLmhtZCA9IChtb2R1bGUpID0+IHtcblx0bW9kdWxlID0gT2JqZWN0LmNyZWF0ZShtb2R1bGUpO1xuXHRpZiAoIW1vZHVsZS5jaGlsZHJlbikgbW9kdWxlLmNoaWxkcmVuID0gW107XG5cdE9iamVjdC5kZWZpbmVQcm9wZXJ0eShtb2R1bGUsICdleHBvcnRzJywge1xuXHRcdGVudW1lcmFibGU6IHRydWUsXG5cdFx0c2V0OiAoKSA9PiB7XG5cdFx0XHR0aHJvdyBuZXcgRXJyb3IoJ0VTIE1vZHVsZXMgbWF5IG5vdCBhc3NpZ24gbW9kdWxlLmV4cG9ydHMgb3IgZXhwb3J0cy4qLCBVc2UgRVNNIGV4cG9ydCBzeW50YXgsIGluc3RlYWQ6ICcgKyBtb2R1bGUuaWQpO1xuXHRcdH1cblx0fSk7XG5cdHJldHVybiBtb2R1bGU7XG59OyIsIl9fd2VicGFja19yZXF1aXJlX18ubyA9IChvYmosIHByb3ApID0+IChPYmplY3QucHJvdG90eXBlLmhhc093blByb3BlcnR5LmNhbGwob2JqLCBwcm9wKSkiLCJ2YXIgc2NyaXB0VXJsO1xuaWYgKF9fd2VicGFja19yZXF1aXJlX18uZy5pbXBvcnRTY3JpcHRzKSBzY3JpcHRVcmwgPSBfX3dlYnBhY2tfcmVxdWlyZV9fLmcubG9jYXRpb24gKyBcIlwiO1xudmFyIGRvY3VtZW50ID0gX193ZWJwYWNrX3JlcXVpcmVfXy5nLmRvY3VtZW50O1xuaWYgKCFzY3JpcHRVcmwgJiYgZG9jdW1lbnQpIHtcblx0aWYgKGRvY3VtZW50LmN1cnJlbnRTY3JpcHQpXG5cdFx0c2NyaXB0VXJsID0gZG9jdW1lbnQuY3VycmVudFNjcmlwdC5zcmM7XG5cdGlmICghc2NyaXB0VXJsKSB7XG5cdFx0dmFyIHNjcmlwdHMgPSBkb2N1bWVudC5nZXRFbGVtZW50c0J5VGFnTmFtZShcInNjcmlwdFwiKTtcblx0XHRpZihzY3JpcHRzLmxlbmd0aCkge1xuXHRcdFx0dmFyIGkgPSBzY3JpcHRzLmxlbmd0aCAtIDE7XG5cdFx0XHR3aGlsZSAoaSA+IC0xICYmICFzY3JpcHRVcmwpIHNjcmlwdFVybCA9IHNjcmlwdHNbaS0tXS5zcmM7XG5cdFx0fVxuXHR9XG59XG4vLyBXaGVuIHN1cHBvcnRpbmcgYnJvd3NlcnMgd2hlcmUgYW4gYXV0b21hdGljIHB1YmxpY1BhdGggaXMgbm90IHN1cHBvcnRlZCB5b3UgbXVzdCBzcGVjaWZ5IGFuIG91dHB1dC5wdWJsaWNQYXRoIG1hbnVhbGx5IHZpYSBjb25maWd1cmF0aW9uXG4vLyBvciBwYXNzIGFuIGVtcHR5IHN0cmluZyAoXCJcIikgYW5kIHNldCB0aGUgX193ZWJwYWNrX3B1YmxpY19wYXRoX18gdmFyaWFibGUgZnJvbSB5b3VyIGNvZGUgdG8gdXNlIHlvdXIgb3duIGxvZ2ljLlxuaWYgKCFzY3JpcHRVcmwpIHRocm93IG5ldyBFcnJvcihcIkF1dG9tYXRpYyBwdWJsaWNQYXRoIGlzIG5vdCBzdXBwb3J0ZWQgaW4gdGhpcyBicm93c2VyXCIpO1xuc2NyaXB0VXJsID0gc2NyaXB0VXJsLnJlcGxhY2UoLyMuKiQvLCBcIlwiKS5yZXBsYWNlKC9cXD8uKiQvLCBcIlwiKS5yZXBsYWNlKC9cXC9bXlxcL10rJC8sIFwiL1wiKTtcbl9fd2VicGFja19yZXF1aXJlX18ucCA9IHNjcmlwdFVybDsiLCJfX3dlYnBhY2tfcmVxdWlyZV9fLmIgPSBzZWxmLmxvY2F0aW9uICsgXCJcIjtcblxuLy8gb2JqZWN0IHRvIHN0b3JlIGxvYWRlZCBjaHVua3Ncbi8vIFwiMVwiIG1lYW5zIFwiYWxyZWFkeSBsb2FkZWRcIlxudmFyIGluc3RhbGxlZENodW5rcyA9IHtcblx0MzU2OiAxXG59O1xuXG4vLyBubyBjaHVuayBpbnN0YWxsIGZ1bmN0aW9uIG5lZWRlZFxuLy8gbm8gY2h1bmsgbG9hZGluZ1xuXG4vLyBubyBITVJcblxuLy8gbm8gSE1SIG1hbmlmZXN0IiwiaW1wb3J0IHsgZ2V0Q2x1c3RlcnNGcm9tRGlzdE1hdFdhc20gfSBmcm9tICcuL2NsdXN0ZXJpemVyV2FzbSc7XG5vbm1lc3NhZ2UgPSAoZXZlbnQpID0+IHtcbiAgICBjb25zdCB7IGRpc3RNYXRBcnJheSwgbiwgbWV0aG9kQ29kZSB9ID0gZXZlbnQuZGF0YTtcbiAgICBjb25zdCBkYXRhID0ge307XG4gICAgdHJ5IHtcbiAgICAgICAgZ2V0Q2x1c3RlcnNGcm9tRGlzdE1hdFdhc20oZGlzdE1hdEFycmF5LCBuLCBtZXRob2RDb2RlKVxuICAgICAgICAgICAgLnRoZW4oKGNsdXN0ZXJNYXRyaXgpID0+IHtcbiAgICAgICAgICAgIGRhdGEuY2x1c3Rlck1hdHJpeCA9IGNsdXN0ZXJNYXRyaXg7XG4gICAgICAgICAgICBwb3N0TWVzc2FnZShkYXRhKTtcbiAgICAgICAgfSk7XG4gICAgfVxuICAgIGNhdGNoIChlKSB7XG4gICAgICAgIGRhdGEuZXJyb3IgPSBlO1xuICAgICAgICBwb3N0TWVzc2FnZShkYXRhKTtcbiAgICB9XG59O1xuLy8jIHNvdXJjZU1hcHBpbmdVUkw9Y2x1c3RlcmluZy13b3JrZXIuanMubWFwIiwiaW1wb3J0IHtleHBvcnRDcHBMaWJ9IGZyb20gJy4vd2FzbUNsdXN0ZXIuanMnO1xuXG4vKipcbiBjYWxscyB3YXNtIGZ1bmN0aW9uIHRvIGdldCBjbHVzdGVyaW5nIG1lcmdlcyBhbmQgaGVpZ2h0cyBmcm9tIGRpc3RhbmNlIG1hdHJpeFxuIGRpc3RtYXQ6IGRpc3RhbmNlIG1hdHJpeCBhcyBhbiBhcnJheSBvZiBmbG9hdHMgY29tcHJpc2luZyB0aGUgdG9wIHJpZ2h0IHRyaWFuZ2xlIG9mIHRoZSBtYXRyaXhcbiBuOiBudW1iZXIgb2Ygb2JzZXJ2YWJsZXNcbiBtZXRob2Q6IDAgPSBzaW5nbGUgbGlua2FnZSwgMSA9IGNvbXBsZXRlIGxpbmthZ2UsIDIgPSBhdmVyYWdlIGxpbmthZ2UsIDMgPSBtZWRpYW4gbGlua2FnZVxuIHJlc3VsdDogeyBtZXJnZVJlc3VsdDogSW50MzJBcnJheSwgaGVpZ2h0c1Jlc3VsdDogRmxvYXQzMkFycmF5IH1cbiBtZXJnZVJlc3VsdCBoYXMgbGVuZ3RoIG9mIChuLTEpKjIgYW5kIGhlaWdodFJlc3VsdCBoYXMgbGVuZ3RoIG9mIG4tMVxuIHRvZ2V0aGVyIHRoZXkgZGVzY3JpYmUgdGhlIGNsdXN0ZXJpbmcgYXMgYSBkZW5kcm9ncmFtIGFzIGEgbWF0cml4IG9mIChuLTEpIFggM1xuIGVhY2ggcm93IGluIHRoZSBnaXZlbiBtYXRyaXggY29tcHJpc2VzIHRoZSBtZXJnZSBldmVudCBhdCBzdGVwIGkgYW5kIGxhc3QgY29sdW1uIGlzIHRoZSBoZWlnaHQgZnJvbSB0aGUgbGVhdmVzLlxuKi9cbmV4cG9ydCBhc3luYyBmdW5jdGlvbiBnZXRDbHVzdGVyc0Zyb21EaXN0TWF0V2FzbShkaXN0bWF0LCBuLCBtZXRob2QpIHtcbiAgY29uc3Qgd2FzbVVybCA9IG5ldyBVUkwoJy4vd2FzbUNsdXN0ZXIud2FzbScsIGltcG9ydC5tZXRhLnVybCkuaHJlZjtcbiAgY29uc3Qgd2FzbVBhdGggPSB3YXNtVXJsLnN1YnN0cmluZygwLCB3YXNtVXJsLmxhc3RJbmRleE9mKCcvJykgKyAxKSArICd3YXNtQ2x1c3Rlci53YXNtJztcbiAgY29uc3Qgd2FzbUluc3RhbmNlID0gYXdhaXQgZXhwb3J0Q3BwTGliKHtsb2NhdGVGaWxlOiAoKSA9PiB3YXNtUGF0aH0pO1xuICBjb25zdCBnZXREZW5kcm9ncmFtV2FzbSA9XG4gICAgd2FzbUluc3RhbmNlLmN3cmFwKCdnZXREZW5kcm9ncmFtJywgJ251bGwnLCBbJ251bWJlcicsICdudW1iZXInLCAnbnVtYmVyJywgJ251bWJlcicsICdudW1iZXInXSk7XG4gIC8vIGFsbG9jYXRlIGEgbWVtb3J5IGJsb2NrIG9uIHRoZSB3YXNtIGhlYXAgZm9yIHRoZSBkaXN0YW5jZSBtYXRyaXhcbiAgY29uc3QgYnl0ZXNGb3JEaXN0TWF0ID0gRmxvYXQzMkFycmF5LkJZVEVTX1BFUl9FTEVNRU5UICogZGlzdG1hdC5sZW5ndGg7XG4gIGNvbnN0IGRhdGFQdHIgPSB3YXNtSW5zdGFuY2UuX21hbGxvYyhieXRlc0ZvckRpc3RNYXQpO1xuICBjb25zdCBtYXRIZWFwID0gbmV3IFVpbnQ4QXJyYXkod2FzbUluc3RhbmNlLkhFQVBVOC5idWZmZXIsIGRhdGFQdHIsIGJ5dGVzRm9yRGlzdE1hdCk7XG4gIG1hdEhlYXAuc2V0KG5ldyBVaW50OEFycmF5KGRpc3RtYXQuYnVmZmVyKSk7XG5cbiAgLy9hbGxvY2F0ZSBhIG1lbW9yeSBibG9jayBvbiB0aGUgd2FzbSBoZWFwIGZvciB0aGUgbWVyZ2VzIGFycmF5XG4gIGNvbnN0IGJ5dGVzRm9yTWVyZ2VBcnJheSA9IEludDMyQXJyYXkuQllURVNfUEVSX0VMRU1FTlQgKiAobiAtIDEpICogMjtcbiAgY29uc3QgbWVyZ2VQdHIgPSB3YXNtSW5zdGFuY2UuX21hbGxvYyhieXRlc0Zvck1lcmdlQXJyYXkpO1xuICBjb25zdCBtZXJnZUhlYXAgPSBuZXcgVWludDhBcnJheSh3YXNtSW5zdGFuY2UuSEVBUFU4LmJ1ZmZlciwgbWVyZ2VQdHIsIGJ5dGVzRm9yTWVyZ2VBcnJheSk7XG5cbiAgLy9hbGxvY2F0ZSBhIG1lbW9yeSBibG9jayBvbiB0aGUgd2FzbSBoZWFwIGZvciB0aGUgaGVpZ3QgYXJyYXlcbiAgY29uc3QgYnl0ZXNGb3JIZWlnaHRzQXJyYXkgPSBGbG9hdDMyQXJyYXkuQllURVNfUEVSX0VMRU1FTlQgKiAobiAtIDEpO1xuICBjb25zdCBoZWlnaHRzUHRyID0gd2FzbUluc3RhbmNlLl9tYWxsb2MoYnl0ZXNGb3JIZWlnaHRzQXJyYXkpO1xuICBjb25zdCBoZWlnaHRzSGVhcCA9IG5ldyBVaW50OEFycmF5KHdhc21JbnN0YW5jZS5IRUFQVTguYnVmZmVyLCBoZWlnaHRzUHRyLCBieXRlc0ZvckhlaWdodHNBcnJheSk7XG5cbiAgLy8gY2FsbCB0aGUgd2FzbSBmdW5jdGlvblxuICBnZXREZW5kcm9ncmFtV2FzbShkYXRhUHRyLCBuLCBtZXRob2QsIG1lcmdlUHRyLCBoZWlnaHRzUHRyKTtcbiAgLy8gZ2V0IHRoZSBtZXJnZXMgYW5kIGhlaWdodHMgZnJvbSB0aGUgd2FzbSBoZWFwXG4gIGNvbnN0IG1lcmdlUmVzdWx0ID0gbmV3IEludDMyQXJyYXkobWVyZ2VIZWFwLmJ1ZmZlciwgbWVyZ2VIZWFwLmJ5dGVPZmZzZXQsIChuLTEpICogMik7XG4gIGNvbnN0IGhlaWdodHNSZXN1bHQgPSAobmV3IEZsb2F0MzJBcnJheShoZWlnaHRzSGVhcC5idWZmZXIsIGhlaWdodHNIZWFwLmJ5dGVPZmZzZXQsIG4tMSkpLnNsaWNlKDAsIG4tMSk7XG5cbiAgY29uc3QgbWVyZ2VSb3cxID0gbWVyZ2VSZXN1bHQuc2xpY2UoMCwgbi0xKTtcbiAgY29uc3QgbWVyZ2VSb3cyID0gbWVyZ2VSZXN1bHQuc2xpY2Uobi0xLCAyKm4gLSAyKTtcbiAgLy8gZnJlZSB0aGUgbWVtb3J5IGJsb2NrcyBvbiB0aGUgd2FzbSBoZWFwXG4gIHdhc21JbnN0YW5jZS5fZnJlZShtYXRIZWFwLmJ5dGVPZmZzZXQpO1xuICB3YXNtSW5zdGFuY2UuX2ZyZWUobWVyZ2VIZWFwLmJ5dGVPZmZzZXQpO1xuICB3YXNtSW5zdGFuY2UuX2ZyZWUoaGVpZ2h0c0hlYXAuYnl0ZU9mZnNldCk7XG4gIHJldHVybiB7bWVyZ2VSb3cxLCBtZXJnZVJvdzIsIGhlaWdodHNSZXN1bHR9O1xufVxuIl0sIm5hbWVzIjpbIl9zY3JpcHREaXIiLCJleHBvcnRDcHBMaWIiLCJkb2N1bWVudCIsImN1cnJlbnRTY3JpcHQiLCJzcmMiLCJ1bmRlZmluZWQiLCJyZWFkeVByb21pc2VSZXNvbHZlIiwicmVhZHlQcm9taXNlUmVqZWN0IiwiTW9kdWxlIiwiUHJvbWlzZSIsInJlc29sdmUiLCJyZWplY3QiLCJyZWFkQmluYXJ5IiwibW9kdWxlT3ZlcnJpZGVzIiwiT2JqZWN0IiwiYXNzaWduIiwiRU5WSVJPTk1FTlRfSVNfV0VCIiwid2luZG93IiwiRU5WSVJPTk1FTlRfSVNfV09SS0VSIiwiaW1wb3J0U2NyaXB0cyIsInNjcmlwdERpcmVjdG9yeSIsInByb2Nlc3MiLCJ2ZXJzaW9ucyIsIm5vZGUiLCJzZWxmIiwibG9jYXRpb24iLCJocmVmIiwiaW5kZXhPZiIsInN1YnN0ciIsInJlcGxhY2UiLCJsYXN0SW5kZXhPZiIsInVybCIsInhociIsIlhNTEh0dHBSZXF1ZXN0Iiwib3BlbiIsInJlc3BvbnNlVHlwZSIsInNlbmQiLCJVaW50OEFycmF5IiwicmVzcG9uc2UiLCJjb25zb2xlIiwibG9nIiwiYmluZCIsIndhc21CaW5hcnkiLCJ3YXNtTWVtb3J5IiwiZXJyIiwid2FybiIsIldlYkFzc2VtYmx5IiwiYWJvcnQiLCJIRUFQOCIsIkhFQVBVOCIsIkhFQVBVMzIiLCJBQk9SVCIsInVwZGF0ZU1lbW9yeVZpZXdzIiwiYiIsImJ1ZmZlciIsIkludDhBcnJheSIsIkludDE2QXJyYXkiLCJJbnQzMkFycmF5IiwiVWludDE2QXJyYXkiLCJVaW50MzJBcnJheSIsIkZsb2F0MzJBcnJheSIsIkZsb2F0NjRBcnJheSIsIl9fQVRQUkVSVU5fXyIsIl9fQVRJTklUX18iLCJfX0FUUE9TVFJVTl9fIiwicnVuRGVwZW5kZW5jaWVzIiwicnVuRGVwZW5kZW5jeVdhdGNoZXIiLCJkZXBlbmRlbmNpZXNGdWxmaWxsZWQiLCJ3aGF0IiwiZSIsIlJ1bnRpbWVFcnJvciIsIndhc21CaW5hcnlGaWxlIiwicGF0aCIsImlzRGF0YVVSSSIsImZpbGVuYW1lIiwic3RhcnRzV2l0aCIsImdldEJpbmFyeSIsImZpbGUiLCJpbnN0YW50aWF0ZUFycmF5QnVmZmVyIiwiYmluYXJ5RmlsZSIsImltcG9ydHMiLCJyZWNlaXZlciIsImZldGNoIiwidGhlbiIsImNyZWRlbnRpYWxzIiwiY2F0Y2giLCJnZXRCaW5hcnlQcm9taXNlIiwiYmluYXJ5IiwiaW5zdGFudGlhdGUiLCJpbnN0YW5jZSIsInJlYXNvbiIsImNhbGxSdW50aW1lQ2FsbGJhY2tzIiwiY2FsbGJhY2tzIiwibGVuZ3RoIiwic2hpZnQiLCJFeGNlcHRpb25JbmZvIiwiZXhjUHRyIiwidGhpcyIsInB0ciIsInNldF90eXBlIiwidHlwZSIsImdldF90eXBlIiwic2V0X2Rlc3RydWN0b3IiLCJkZXN0cnVjdG9yIiwiZ2V0X2Rlc3RydWN0b3IiLCJzZXRfY2F1Z2h0IiwiY2F1Z2h0IiwiZ2V0X2NhdWdodCIsInNldF9yZXRocm93biIsInJldGhyb3duIiwiZ2V0X3JldGhyb3duIiwiaW5pdCIsInNldF9hZGp1c3RlZF9wdHIiLCJhZGp1c3RlZFB0ciIsImdldF9hZGp1c3RlZF9wdHIiLCJnZXRfZXhjZXB0aW9uX3B0ciIsIl9fX2N4YV9pc19wb2ludGVyX3R5cGUiLCJhZGp1c3RlZCIsImVtc2NyaXB0ZW5fcmVhbGxvY19idWZmZXIiLCJzaXplIiwiZ3JvdyIsImJ5dGVMZW5ndGgiLCJnZXRDRnVuYyIsImlkZW50IiwiVVRGOERlY29kZXIiLCJUZXh0RGVjb2RlciIsImNjYWxsIiwicmV0dXJuVHlwZSIsImFyZ1R5cGVzIiwiYXJncyIsIm9wdHMiLCJ0b0MiLCJzdHIiLCJyZXQiLCJsZW4iLCJpIiwiYyIsImNoYXJDb2RlQXQiLCJsZW5ndGhCeXRlc1VURjgiLCJzdGFja0FsbG9jIiwib3V0UHRyIiwibWF4Qnl0ZXNUb1dyaXRlIiwiaGVhcCIsIm91dElkeCIsImVuZElkeCIsInUiLCJzdHJpbmdUb1VURjhBcnJheSIsInN0cmluZ1RvVVRGOCIsInN0cmluZ1RvVVRGOE9uU3RhY2siLCJhcnIiLCJhcnJheSIsInNldCIsImZ1bmMiLCJjQXJncyIsInN0YWNrIiwiY29udmVydGVyIiwic3RhY2tTYXZlIiwiYXBwbHkiLCJzdGFja1Jlc3RvcmUiLCJoZWFwT3JBcnJheSIsImlkeCIsIm1heEJ5dGVzVG9SZWFkIiwiZW5kUHRyIiwiZGVjb2RlIiwic3ViYXJyYXkiLCJ1MCIsInUxIiwidTIiLCJTdHJpbmciLCJmcm9tQ2hhckNvZGUiLCJjaCIsIlVURjhBcnJheVRvU3RyaW5nIiwiQm9vbGVhbiIsImNvbnZlcnRSZXR1cm5WYWx1ZSIsIm9uRG9uZSIsImNhbGxlZFJ1biIsIndhc21JbXBvcnRzIiwiZGVzdCIsIm51bSIsImNvcHlXaXRoaW4iLCJyZXF1ZXN0ZWRTaXplIiwieCIsIm9sZFNpemUiLCJtYXhIZWFwU2l6ZSIsImN1dERvd24iLCJvdmVyR3Jvd25IZWFwU2l6ZSIsIk1hdGgiLCJtaW4iLCJtYXgiLCJjYWxsYmFjayIsImluZm8iLCJyZWNlaXZlSW5zdGFuY2UiLCJtb2R1bGUiLCJjYiIsImV4cG9ydHMiLCJ1bnNoaWZ0IiwiaWQiLCJjbGVhckludGVydmFsIiwicmVtb3ZlUnVuRGVwZW5kZW5jeSIsInJlc3VsdCIsImluc3RhbnRpYXRlU3RyZWFtaW5nIiwiY3JlYXRlV2FzbSIsImFyZ3VtZW50cyIsInJ1biIsImRvUnVuIiwicG9zdFJ1biIsInByZVJ1biIsInNldFRpbWVvdXQiLCJudW1lcmljQXJncyIsImV2ZXJ5IiwicnVuQ2FsbGVyIiwicG9wIiwicmVhZHkiLCJkZWZpbmUiLCJfX3dlYnBhY2tfbW9kdWxlX2NhY2hlX18iLCJfX3dlYnBhY2tfcmVxdWlyZV9fIiwibW9kdWxlSWQiLCJjYWNoZWRNb2R1bGUiLCJsb2FkZWQiLCJfX3dlYnBhY2tfbW9kdWxlc19fIiwibSIsImFtZE8iLCJkIiwiZGVmaW5pdGlvbiIsImtleSIsIm8iLCJkZWZpbmVQcm9wZXJ0eSIsImVudW1lcmFibGUiLCJnZXQiLCJnIiwiZ2xvYmFsVGhpcyIsIkZ1bmN0aW9uIiwiaG1kIiwiY3JlYXRlIiwiY2hpbGRyZW4iLCJFcnJvciIsIm9iaiIsInByb3AiLCJwcm90b3R5cGUiLCJoYXNPd25Qcm9wZXJ0eSIsImNhbGwiLCJzY3JpcHRVcmwiLCJzY3JpcHRzIiwiZ2V0RWxlbWVudHNCeVRhZ05hbWUiLCJwIiwib25tZXNzYWdlIiwiZXZlbnQiLCJkaXN0TWF0QXJyYXkiLCJuIiwibWV0aG9kQ29kZSIsImRhdGEiLCJhc3luYyIsImRpc3RtYXQiLCJtZXRob2QiLCJ3YXNtVXJsIiwiVVJMIiwid2FzbVBhdGgiLCJzdWJzdHJpbmciLCJ3YXNtSW5zdGFuY2UiLCJsb2NhdGVGaWxlIiwiZ2V0RGVuZHJvZ3JhbVdhc20iLCJjd3JhcCIsImJ5dGVzRm9yRGlzdE1hdCIsIkJZVEVTX1BFUl9FTEVNRU5UIiwiZGF0YVB0ciIsIl9tYWxsb2MiLCJtYXRIZWFwIiwiYnl0ZXNGb3JNZXJnZUFycmF5IiwibWVyZ2VQdHIiLCJtZXJnZUhlYXAiLCJieXRlc0ZvckhlaWdodHNBcnJheSIsImhlaWdodHNQdHIiLCJoZWlnaHRzSGVhcCIsIm1lcmdlUmVzdWx0IiwiYnl0ZU9mZnNldCIsImhlaWdodHNSZXN1bHQiLCJzbGljZSIsIm1lcmdlUm93MSIsIm1lcmdlUm93MiIsIl9mcmVlIiwiZ2V0Q2x1c3RlcnNGcm9tRGlzdE1hdFdhc20iLCJjbHVzdGVyTWF0cml4IiwicG9zdE1lc3NhZ2UiLCJlcnJvciJdLCJzb3VyY2VSb290IjoiIn0=
|
|
1
|
+
var eda;(()=>{"use strict";var t,e={6138:(t,e,r)=>{r.d(e,{W:()=>i}),t=r.hmd(t);var n,i=(n="undefined"!=typeof document&&document.currentScript?document.currentScript.src:void 0,function(t={}){var e,r,i=void 0!==t?t:{};i.ready=new Promise((function(t,n){e=t,r=n}));var o,a=Object.assign({},i),s="object"==typeof window,u="function"==typeof importScripts,c=("object"==typeof process&&"object"==typeof process.versions&&process.versions.node,"");(s||u)&&(u?c=self.location.href:"undefined"!=typeof document&&document.currentScript&&(c=document.currentScript.src),n&&(c=n),c=0!==c.indexOf("blob:")?c.substr(0,c.replace(/[?#].*/,"").lastIndexOf("/")+1):"",u&&(o=t=>{var e=new XMLHttpRequest;return e.open("GET",t,!1),e.responseType="arraybuffer",e.send(null),new Uint8Array(e.response)})),i.print||console.log.bind(console);var f,l,p=i.printErr||console.warn.bind(console);Object.assign(i,a),a=null,i.arguments&&i.arguments,i.thisProgram&&i.thisProgram,i.quit&&i.quit,i.wasmBinary&&(f=i.wasmBinary),i.noExitRuntime,"object"!=typeof WebAssembly&&R("no native wasm support detected");var h,d,m,y=!1;function b(){var t=l.buffer;i.HEAP8=h=new Int8Array(t),i.HEAP16=new Int16Array(t),i.HEAP32=new Int32Array(t),i.HEAPU8=d=new Uint8Array(t),i.HEAPU16=new Uint16Array(t),i.HEAPU32=m=new Uint32Array(t),i.HEAPF32=new Float32Array(t),i.HEAPF64=new Float64Array(t)}var g=[],w=[],v=[],A=0,_=null,E=null;function R(t){i.onAbort&&i.onAbort(t),p(t="Aborted("+t+")"),y=!0,t+=". Build with -sASSERTIONS for more info.";var e=new WebAssembly.RuntimeError(t);throw r(e),e}var x,P;function S(t){return t.startsWith("data:application/octet-stream;base64,")}function j(t){try{if(t==x&&f)return new Uint8Array(f);if(o)return o(t);throw"both async and sync fetching of the wasm failed"}catch(t){R(t)}}function O(t,e,r){return function(t){return f||!s&&!u||"function"!=typeof fetch?Promise.resolve().then((function(){return j(t)})):fetch(t,{credentials:"same-origin"}).then((function(e){if(!e.ok)throw"failed to load wasm binary file at '"+t+"'";return e.arrayBuffer()})).catch((function(){return j(t)}))}(t).then((function(t){return WebAssembly.instantiate(t,e)})).then((function(t){return t})).then(r,(function(t){p("failed to asynchronously prepare wasm: "+t),R(t)}))}function U(t){for(;t.length>0;)t.shift()(i)}function I(t){this.excPtr=t,this.ptr=t-24,this.set_type=function(t){m[this.ptr+4>>2]=t},this.get_type=function(){return m[this.ptr+4>>2]},this.set_destructor=function(t){m[this.ptr+8>>2]=t},this.get_destructor=function(){return m[this.ptr+8>>2]},this.set_caught=function(t){t=t?1:0,h[this.ptr+12>>0]=t},this.get_caught=function(){return 0!=h[this.ptr+12>>0]},this.set_rethrown=function(t){t=t?1:0,h[this.ptr+13>>0]=t},this.get_rethrown=function(){return 0!=h[this.ptr+13>>0]},this.init=function(t,e){this.set_adjusted_ptr(0),this.set_type(t),this.set_destructor(e)},this.set_adjusted_ptr=function(t){m[this.ptr+16>>2]=t},this.get_adjusted_ptr=function(){return m[this.ptr+16>>2]},this.get_exception_ptr=function(){if(L(this.get_type()))return m[this.excPtr>>2];var t=this.get_adjusted_ptr();return 0!==t?t:this.excPtr}}function T(t){var e=l.buffer;try{return l.grow(t-e.byteLength+65535>>>16),b(),1}catch(t){}}function C(t){return i["_"+t]}S(x="wasmCluster.wasm")||(P=x,x=i.locateFile?i.locateFile(P,c):c+P);var M="undefined"!=typeof TextDecoder?new TextDecoder("utf8"):void 0;function W(t,e,r,n,i){var o={string:t=>{var e=0;return null!=t&&0!==t&&(e=function(t){var e=function(t){for(var e=0,r=0;r<t.length;++r){var n=t.charCodeAt(r);n<=127?e++:n<=2047?e+=2:n>=55296&&n<=57343?(e+=4,++r):e+=3}return e}(t)+1,r=k(e);return function(t,e,r){!function(t,e,r,n){if(!(n>0))return 0;for(var i=r+n-1,o=0;o<t.length;++o){var a=t.charCodeAt(o);if(a>=55296&&a<=57343&&(a=65536+((1023&a)<<10)|1023&t.charCodeAt(++o)),a<=127){if(r>=i)break;e[r++]=a}else if(a<=2047){if(r+1>=i)break;e[r++]=192|a>>6,e[r++]=128|63&a}else if(a<=65535){if(r+2>=i)break;e[r++]=224|a>>12,e[r++]=128|a>>6&63,e[r++]=128|63&a}else{if(r+3>=i)break;e[r++]=240|a>>18,e[r++]=128|a>>12&63,e[r++]=128|a>>6&63,e[r++]=128|63&a}}e[r]=0}(t,d,e,r)}(t,r,e),r}(t)),e},array:t=>{var e,r,n=k(t.length);return e=t,r=n,h.set(e,r),n}},a=C(t),s=[],u=0;if(n)for(var c=0;c<n.length;c++){var f=o[r[c]];f?(0===u&&(u=B()),s[c]=f(n[c])):s[c]=n[c]}var l=a.apply(null,s);return function(t){return 0!==u&&D(u),function(t){return"string"===e?(r=t)?function(t,e,r){for(var n=e+r,i=e;t[i]&&!(i>=n);)++i;if(i-e>16&&t.buffer&&M)return M.decode(t.subarray(e,i));for(var o="";e<i;){var a=t[e++];if(128&a){var s=63&t[e++];if(192!=(224&a)){var u=63&t[e++];if((a=224==(240&a)?(15&a)<<12|s<<6|u:(7&a)<<18|s<<12|u<<6|63&t[e++])<65536)o+=String.fromCharCode(a);else{var c=a-65536;o+=String.fromCharCode(55296|c>>10,56320|1023&c)}}else o+=String.fromCharCode((31&a)<<6|s)}else o+=String.fromCharCode(a)}return o}(d,r,n):"":"boolean"===e?Boolean(t):t;var r,n}(t)}(l)}var F,H={d:function(t,e,r){throw new I(t).init(e,r),t},a:function(){R("")},c:function(t,e,r){d.copyWithin(t,e,e+r)},b:function(t){var e,r=d.length,n=2147483648;if((t>>>=0)>n)return!1;for(var i=1;i<=4;i*=2){var o=r*(1+.2/i);if(o=Math.min(o,t+100663296),T(Math.min(n,(e=Math.max(t,o))+(65536-e%65536)%65536)))return!0}return!1}},B=(function(){var t,e,n,o,a={a:H};function s(t,e){var r,n=t.exports;return i.asm=n,l=i.asm.e,b(),i.asm.i,r=i.asm.f,w.unshift(r),function(t){if(A--,i.monitorRunDependencies&&i.monitorRunDependencies(A),0==A&&(null!==_&&(clearInterval(_),_=null),E)){var e=E;E=null,e()}}(),n}if(A++,i.monitorRunDependencies&&i.monitorRunDependencies(A),i.instantiateWasm)try{return i.instantiateWasm(a,s)}catch(t){p("Module.instantiateWasm callback failed with error: "+t),r(t)}(t=f,e=x,n=a,o=function(t){s(t.instance)},t||"function"!=typeof WebAssembly.instantiateStreaming||S(e)||"function"!=typeof fetch?O(e,n,o):fetch(e,{credentials:"same-origin"}).then((function(t){return WebAssembly.instantiateStreaming(t,n).then(o,(function(t){return p("wasm streaming compile failed: "+t),p("falling back to ArrayBuffer instantiation"),O(e,n,o)}))}))).catch(r)}(),i._getDendrogram=function(){return(i._getDendrogram=i.asm.g).apply(null,arguments)},i._free=function(){return(i._free=i.asm.h).apply(null,arguments)},i._malloc=function(){return(i._malloc=i.asm.j).apply(null,arguments)},function(){return(B=i.asm.k).apply(null,arguments)}),D=function(){return(D=i.asm.l).apply(null,arguments)},k=function(){return(k=i.asm.m).apply(null,arguments)},L=function(){return(L=i.asm.n).apply(null,arguments)};function N(){function t(){F||(F=!0,i.calledRun=!0,y||(U(w),e(i),i.onRuntimeInitialized&&i.onRuntimeInitialized(),function(){if(i.postRun)for("function"==typeof i.postRun&&(i.postRun=[i.postRun]);i.postRun.length;)t=i.postRun.shift(),v.unshift(t);var t;U(v)}()))}A>0||(function(){if(i.preRun)for("function"==typeof i.preRun&&(i.preRun=[i.preRun]);i.preRun.length;)t=i.preRun.shift(),g.unshift(t);var t;U(g)}(),A>0||(i.setStatus?(i.setStatus("Running..."),setTimeout((function(){setTimeout((function(){i.setStatus("")}),1),t()}),1)):t()))}if(i.ccall=W,i.cwrap=function(t,e,r,n){var i=!r||r.every((t=>"number"===t||"boolean"===t));return"string"!==e&&i&&!n?C(t):function(){return W(t,e,r,arguments)}},E=function t(){F||N(),F||(E=t)},i.preInit)for("function"==typeof i.preInit&&(i.preInit=[i.preInit]);i.preInit.length>0;)i.preInit.pop()();return N(),t.ready});"object"==typeof exports?t.exports=i:"function"==typeof define&&r.amdO?define([],(function(){return i})):"object"==typeof exports&&(exports.exportCppLib=i)},5063:(t,e,r)=>{t.exports=r.p+"8473fcbfb6e85ca6c852.wasm"}},r={};function n(t){var i=r[t];if(void 0!==i)return i.exports;var o=r[t]={id:t,loaded:!1,exports:{}};return e[t](o,o.exports,n),o.loaded=!0,o.exports}n.m=e,n.amdO={},n.d=(t,e)=>{for(var r in e)n.o(e,r)&&!n.o(t,r)&&Object.defineProperty(t,r,{enumerable:!0,get:e[r]})},n.g=function(){if("object"==typeof globalThis)return globalThis;try{return this||new Function("return this")()}catch(t){if("object"==typeof window)return window}}(),n.hmd=t=>((t=Object.create(t)).children||(t.children=[]),Object.defineProperty(t,"exports",{enumerable:!0,set:()=>{throw new Error("ES Modules may not assign module.exports or exports.*, Use ESM export syntax, instead: "+t.id)}}),t),n.o=(t,e)=>Object.prototype.hasOwnProperty.call(t,e),(()=>{var t;n.g.importScripts&&(t=n.g.location+"");var e=n.g.document;if(!t&&e&&(e.currentScript&&(t=e.currentScript.src),!t)){var r=e.getElementsByTagName("script");if(r.length)for(var i=r.length-1;i>-1&&!t;)t=r[i--].src}if(!t)throw new Error("Automatic publicPath is not supported in this browser");t=t.replace(/#.*$/,"").replace(/\?.*$/,"").replace(/\/[^\/]+$/,"/"),n.p=t})(),n.b=self.location+"",t=n(6138),onmessage=e=>{const{distMatArray:r,n:i,methodCode:o}=e.data,a={};try{(async function(e,r,i){const o=new URL(n(5063),n.b).href,a=o.substring(0,o.lastIndexOf("/")+1)+"wasmCluster.wasm";let s;try{s=await(0,t.W)({locateFile:()=>a,printErr:t=>{}})}catch(e){try{s=await(0,t.W)({locateFile:()=>o,printErr:t=>{}})}catch(t){throw console.error(t),new Error("Unable to load wasm file for hierarchical clustering")}}const u=s.cwrap("getDendrogram","null",["number","number","number","number","number"]),c=Float32Array.BYTES_PER_ELEMENT*e.length,f=s._malloc(c),l=new Uint8Array(s.HEAPU8.buffer,f,c);l.set(new Uint8Array(e.buffer));const p=Int32Array.BYTES_PER_ELEMENT*(r-1)*2,h=s._malloc(p),d=new Uint8Array(s.HEAPU8.buffer,h,p),m=Float32Array.BYTES_PER_ELEMENT*(r-1),y=s._malloc(m),b=new Uint8Array(s.HEAPU8.buffer,y,m);u(f,r,i,h,y);const g=new Int32Array(d.buffer,d.byteOffset,2*(r-1)),w=new Float32Array(b.buffer,b.byteOffset,r-1).slice(0,r-1),v=g.slice(0,r-1),A=g.slice(r-1,2*r-2);return s._free(l.byteOffset),s._free(d.byteOffset),s._free(b.byteOffset),{mergeRow1:v,mergeRow2:A,heightsResult:w}})(r,i,o).then((t=>{a.clusterMatrix=t,postMessage(a)}))}catch(t){a.error=t,postMessage(a)}},eda={}})();
|
|
2
|
+
//# sourceMappingURL=data:application/json;charset=utf-8;base64,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SCxXQUFXeU4sRUFBUXhNLFNBR25DLE1BQU0wTixFQUFxQnZOLFdBQVdtTixtQkFBcUJsQixFQUFJLEdBQUssRUFDOUR1QixFQUFXYixFQUFhVSxRQUFRRSxHQUNoQ0UsRUFBWSxJQUFJN08sV0FBVytOLEVBQWFuTixPQUFPSyxPQUFRMk4sRUFBVUQsR0FHakVHLEVBQXVCdk4sYUFBYWdOLG1CQUFxQmxCLEVBQUksR0FDN0QwQixFQUFhaEIsRUFBYVUsUUFBUUssR0FDbENFLEVBQWMsSUFBSWhQLFdBQVcrTixFQUFhbk4sT0FBT0ssT0FBUThOLEVBQVlELEdBRzNFVixFQUFrQkksRUFBU25CLEVBQUdLLEVBQVFrQixFQUFVRyxHQUVoRCxNQUFNRSxFQUFjLElBQUk3TixXQUFXeU4sRUFBVTVOLE9BQVE0TixFQUFVSyxXQUFvQixHQUFQN0IsRUFBRSxJQUN4RThCLEVBQWdCLElBQUs1TixhQUFheU4sRUFBWS9OLE9BQVErTixFQUFZRSxXQUFZN0IsRUFBRSxHQUFJK0IsTUFBTSxFQUFHL0IsRUFBRSxHQUUvRmdDLEVBQVlKLEVBQVlHLE1BQU0sRUFBRy9CLEVBQUUsR0FDbkNpQyxFQUFZTCxFQUFZRyxNQUFNL0IsRUFBRSxFQUFHLEVBQUVBLEVBQUksR0FLL0MsT0FIQVUsRUFBYXdCLE1BQU1iLEVBQVFRLFlBQzNCbkIsRUFBYXdCLE1BQU1WLEVBQVVLLFlBQzdCbkIsRUFBYXdCLE1BQU1QLEVBQVlFLFlBQ3hCLENBQUNHLFlBQVdDLFlBQVdILGdCQUNoQyxFRHREUUssQ0FBMkJwQyxFQUFjQyxFQUFHQyxHQUN2Q3hLLE1BQU0yTSxJQUNQbEMsRUFBS2tDLGNBQWdCQSxFQUNyQkMsWUFBWW5DLEVBQUssR0FFekIsQ0FDQSxNQUFPdkwsR0FDSHVMLEVBQUtZLE1BQVFuTSxFQUNiME4sWUFBWW5DLEVBQ2hCLEciLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly9lZGEvLi9ub2RlX21vZHVsZXMvQGRhdGFncm9rLWxpYnJhcmllcy9tYXRoL3NyYy9oaWVyYXJjaGljYWwtY2x1c3RlcmluZy93YXNtL3dhc21DbHVzdGVyLmpzIiwid2VicGFjazovL2VkYS93ZWJwYWNrL2Jvb3RzdHJhcCIsIndlYnBhY2s6Ly9lZGEvd2VicGFjay9ydW50aW1lL2FtZCBvcHRpb25zIiwid2VicGFjazovL2VkYS93ZWJwYWNrL3J1bnRpbWUvZGVmaW5lIHByb3BlcnR5IGdldHRlcnMiLCJ3ZWJwYWNrOi8vZWRhL3dlYnBhY2svcnVudGltZS9nbG9iYWwiLCJ3ZWJwYWNrOi8vZWRhL3dlYnBhY2svcnVudGltZS9oYXJtb255IG1vZHVsZSBkZWNvcmF0b3IiLCJ3ZWJwYWNrOi8vZWRhL3dlYnBhY2svcnVudGltZS9oYXNPd25Qcm9wZXJ0eSBzaG9ydGhhbmQiLCJ3ZWJwYWNrOi8vZWRhL3dlYnBhY2svcnVudGltZS9wdWJsaWNQYXRoIiwid2VicGFjazovL2VkYS93ZWJwYWNrL3J1bnRpbWUvaW1wb3J0U2NyaXB0cyBjaHVuayBsb2FkaW5nIiwid2VicGFjazovL2VkYS8uL25vZGVfbW9kdWxlcy9AZGF0YWdyb2stbGlicmFyaWVzL21hdGgvc3JjL2hpZXJhcmNoaWNhbC1jbHVzdGVyaW5nL3dhc20vY2x1c3RlcmluZy13b3JrZXIuanMiLCJ3ZWJwYWNrOi8vZWRhLy4vbm9kZV9tb2R1bGVzL0BkYXRhZ3Jvay1saWJyYXJpZXMvbWF0aC9zcmMvaGllcmFyY2hpY2FsLWNsdXN0ZXJpbmcvd2FzbS9jbHVzdGVyaXplcldhc20uanMiXSwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0IHZhciBleHBvcnRDcHBMaWIgPSAoKCkgPT4ge1xuICB2YXIgX3NjcmlwdERpciA9XG4gICAgdHlwZW9mIGRvY3VtZW50ICE9PSBcInVuZGVmaW5lZFwiICYmIGRvY3VtZW50LmN1cnJlbnRTY3JpcHRcbiAgICAgID8gZG9jdW1lbnQuY3VycmVudFNjcmlwdC5zcmNcbiAgICAgIDogdW5kZWZpbmVkO1xuXG4gIHJldHVybiBmdW5jdGlvbiAoZXhwb3J0Q3BwTGliID0ge30pIHtcbiAgICB2YXIgTW9kdWxlID0gdHlwZW9mIGV4cG9ydENwcExpYiAhPSBcInVuZGVmaW5lZFwiID8gZXhwb3J0Q3BwTGliIDoge307XG4gICAgdmFyIHJlYWR5UHJvbWlzZVJlc29sdmUsIHJlYWR5UHJvbWlzZVJlamVjdDtcbiAgICBNb2R1bGVbXCJyZWFkeVwiXSA9IG5ldyBQcm9taXNlKGZ1bmN0aW9uIChyZXNvbHZlLCByZWplY3QpIHtcbiAgICAgIHJlYWR5UHJvbWlzZVJlc29sdmUgPSByZXNvbHZlO1xuICAgICAgcmVhZHlQcm9taXNlUmVqZWN0ID0gcmVqZWN0O1xuICAgIH0pO1xuICAgIHZhciBtb2R1bGVPdmVycmlkZXMgPSBPYmplY3QuYXNzaWduKHt9LCBNb2R1bGUpO1xuICAgIHZhciBhcmd1bWVudHNfID0gW107XG4gICAgdmFyIHRoaXNQcm9ncmFtID0gXCIuL3RoaXMucHJvZ3JhbVwiO1xuICAgIHZhciBxdWl0XyA9IChzdGF0dXMsIHRvVGhyb3cpID0+IHtcbiAgICAgIHRocm93IHRvVGhyb3c7XG4gICAgfTtcbiAgICB2YXIgRU5WSVJPTk1FTlRfSVNfV0VCID0gdHlwZW9mIHdpbmRvdyA9PSBcIm9iamVjdFwiO1xuICAgIHZhciBFTlZJUk9OTUVOVF9JU19XT1JLRVIgPSB0eXBlb2YgaW1wb3J0U2NyaXB0cyA9PSBcImZ1bmN0aW9uXCI7XG4gICAgdmFyIEVOVklST05NRU5UX0lTX05PREUgPVxuICAgICAgdHlwZW9mIHByb2Nlc3MgPT0gXCJvYmplY3RcIiAmJlxuICAgICAgdHlwZW9mIHByb2Nlc3MudmVyc2lvbnMgPT0gXCJvYmplY3RcIiAmJlxuICAgICAgdHlwZW9mIHByb2Nlc3MudmVyc2lvbnMubm9kZSA9PSBcInN0cmluZ1wiO1xuICAgIHZhciBzY3JpcHREaXJlY3RvcnkgPSBcIlwiO1xuICAgIGZ1bmN0aW9uIGxvY2F0ZUZpbGUocGF0aCkge1xuICAgICAgaWYgKE1vZHVsZVtcImxvY2F0ZUZpbGVcIl0pIHtcbiAgICAgICAgcmV0dXJuIE1vZHVsZVtcImxvY2F0ZUZpbGVcIl0ocGF0aCwgc2NyaXB0RGlyZWN0b3J5KTtcbiAgICAgIH1cbiAgICAgIHJldHVybiBzY3JpcHREaXJlY3RvcnkgKyBwYXRoO1xuICAgIH1cbiAgICB2YXIgcmVhZF8sIHJlYWRBc3luYywgcmVhZEJpbmFyeSwgc2V0V2luZG93VGl0bGU7XG4gICAgaWYgKEVOVklST05NRU5UX0lTX1dFQiB8fCBFTlZJUk9OTUVOVF9JU19XT1JLRVIpIHtcbiAgICAgIGlmIChFTlZJUk9OTUVOVF9JU19XT1JLRVIpIHtcbiAgICAgICAgc2NyaXB0RGlyZWN0b3J5ID0gc2VsZi5sb2NhdGlvbi5ocmVmO1xuICAgICAgfSBlbHNlIGlmICh0eXBlb2YgZG9jdW1lbnQgIT0gXCJ1bmRlZmluZWRcIiAmJiBkb2N1bWVudC5jdXJyZW50U2NyaXB0KSB7XG4gICAgICAgIHNjcmlwdERpcmVjdG9yeSA9IGRvY3VtZW50LmN1cnJlbnRTY3JpcHQuc3JjO1xuICAgICAgfVxuICAgICAgaWYgKF9zY3JpcHREaXIpIHtcbiAgICAgICAgc2NyaXB0RGlyZWN0b3J5ID0gX3NjcmlwdERpcjtcbiAgICAgIH1cbiAgICAgIGlmIChzY3JpcHREaXJlY3RvcnkuaW5kZXhPZihcImJsb2I6XCIpICE9PSAwKSB7XG4gICAgICAgIHNjcmlwdERpcmVjdG9yeSA9IHNjcmlwdERpcmVjdG9yeS5zdWJzdHIoXG4gICAgICAgICAgMCxcbiAgICAgICAgICBzY3JpcHREaXJlY3RvcnkucmVwbGFjZSgvWz8jXS4qLywgXCJcIikubGFzdEluZGV4T2YoXCIvXCIpICsgMVxuICAgICAgICApO1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgc2NyaXB0RGlyZWN0b3J5ID0gXCJcIjtcbiAgICAgIH1cbiAgICAgIHtcbiAgICAgICAgcmVhZF8gPSAodXJsKSA9PiB7XG4gICAgICAgICAgdmFyIHhociA9IG5ldyBYTUxIdHRwUmVxdWVzdCgpO1xuICAgICAgICAgIHhoci5vcGVuKFwiR0VUXCIsIHVybCwgZmFsc2UpO1xuICAgICAgICAgIHhoci5zZW5kKG51bGwpO1xuICAgICAgICAgIHJldHVybiB4aHIucmVzcG9uc2VUZXh0O1xuICAgICAgICB9O1xuICAgICAgICBpZiAoRU5WSVJPTk1FTlRfSVNfV09SS0VSKSB7XG4gICAgICAgICAgcmVhZEJpbmFyeSA9ICh1cmwpID0+IHtcbiAgICAgICAgICAgIHZhciB4aHIgPSBuZXcgWE1MSHR0cFJlcXVlc3QoKTtcbiAgICAgICAgICAgIHhoci5vcGVuKFwiR0VUXCIsIHVybCwgZmFsc2UpO1xuICAgICAgICAgICAgeGhyLnJlc3BvbnNlVHlwZSA9IFwiYXJyYXlidWZmZXJcIjtcbiAgICAgICAgICAgIHhoci5zZW5kKG51bGwpO1xuICAgICAgICAgICAgcmV0dXJuIG5ldyBVaW50OEFycmF5KHhoci5yZXNwb25zZSk7XG4gICAgICAgICAgfTtcbiAgICAgICAgfVxuICAgICAgICByZWFkQXN5bmMgPSAodXJsLCBvbmxvYWQsIG9uZXJyb3IpID0+IHtcbiAgICAgICAgICB2YXIgeGhyID0gbmV3IFhNTEh0dHBSZXF1ZXN0KCk7XG4gICAgICAgICAgeGhyLm9wZW4oXCJHRVRcIiwgdXJsLCB0cnVlKTtcbiAgICAgICAgICB4aHIucmVzcG9uc2VUeXBlID0gXCJhcnJheWJ1ZmZlclwiO1xuICAgICAgICAgIHhoci5vbmxvYWQgPSAoKSA9PiB7XG4gICAgICAgICAgICBpZiAoeGhyLnN0YXR1cyA9PSAyMDAgfHwgKHhoci5zdGF0dXMgPT0gMCAmJiB4aHIucmVzcG9uc2UpKSB7XG4gICAgICAgICAgICAgIG9ubG9hZCh4aHIucmVzcG9uc2UpO1xuICAgICAgICAgICAgICByZXR1cm47XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBvbmVycm9yKCk7XG4gICAgICAgICAgfTtcbiAgICAgICAgICB4aHIub25lcnJvciA9IG9uZXJyb3I7XG4gICAgICAgICAgeGhyLnNlbmQobnVsbCk7XG4gICAgICAgIH07XG4gICAgICB9XG4gICAgICBzZXRXaW5kb3dUaXRsZSA9ICh0aXRsZSkgPT4gKGRvY3VtZW50LnRpdGxlID0gdGl0bGUpO1xuICAgIH0gZWxzZSB7XG4gICAgfVxuICAgIHZhciBvdXQgPSBNb2R1bGVbXCJwcmludFwiXSB8fCBjb25zb2xlLmxvZy5iaW5kKGNvbnNvbGUpO1xuICAgIHZhciBlcnIgPSBNb2R1bGVbXCJwcmludEVyclwiXSB8fCBjb25zb2xlLndhcm4uYmluZChjb25zb2xlKTtcbiAgICBPYmplY3QuYXNzaWduKE1vZHVsZSwgbW9kdWxlT3ZlcnJpZGVzKTtcbiAgICBtb2R1bGVPdmVycmlkZXMgPSBudWxsO1xuICAgIGlmIChNb2R1bGVbXCJhcmd1bWVudHNcIl0pIGFyZ3VtZW50c18gPSBNb2R1bGVbXCJhcmd1bWVudHNcIl07XG4gICAgaWYgKE1vZHVsZVtcInRoaXNQcm9ncmFtXCJdKSB0aGlzUHJvZ3JhbSA9IE1vZHVsZVtcInRoaXNQcm9ncmFtXCJdO1xuICAgIGlmIChNb2R1bGVbXCJxdWl0XCJdKSBxdWl0XyA9IE1vZHVsZVtcInF1aXRcIl07XG4gICAgdmFyIHdhc21CaW5hcnk7XG4gICAgaWYgKE1vZHVsZVtcIndhc21CaW5hcnlcIl0pIHdhc21CaW5hcnkgPSBNb2R1bGVbXCJ3YXNtQmluYXJ5XCJdO1xuICAgIHZhciBub0V4aXRSdW50aW1lID0gTW9kdWxlW1wibm9FeGl0UnVudGltZVwiXSB8fCB0cnVlO1xuICAgIGlmICh0eXBlb2YgV2ViQXNzZW1ibHkgIT0gXCJvYmplY3RcIikge1xuICAgICAgYWJvcnQoXCJubyBuYXRpdmUgd2FzbSBzdXBwb3J0IGRldGVjdGVkXCIpO1xuICAgIH1cbiAgICB2YXIgd2FzbU1lbW9yeTtcbiAgICB2YXIgQUJPUlQgPSBmYWxzZTtcbiAgICB2YXIgRVhJVFNUQVRVUztcbiAgICB2YXIgSEVBUDgsIEhFQVBVOCwgSEVBUDE2LCBIRUFQVTE2LCBIRUFQMzIsIEhFQVBVMzIsIEhFQVBGMzIsIEhFQVBGNjQ7XG4gICAgZnVuY3Rpb24gdXBkYXRlTWVtb3J5Vmlld3MoKSB7XG4gICAgICB2YXIgYiA9IHdhc21NZW1vcnkuYnVmZmVyO1xuICAgICAgTW9kdWxlW1wiSEVBUDhcIl0gPSBIRUFQOCA9IG5ldyBJbnQ4QXJyYXkoYik7XG4gICAgICBNb2R1bGVbXCJIRUFQMTZcIl0gPSBIRUFQMTYgPSBuZXcgSW50MTZBcnJheShiKTtcbiAgICAgIE1vZHVsZVtcIkhFQVAzMlwiXSA9IEhFQVAzMiA9IG5ldyBJbnQzMkFycmF5KGIpO1xuICAgICAgTW9kdWxlW1wiSEVBUFU4XCJdID0gSEVBUFU4ID0gbmV3IFVpbnQ4QXJyYXkoYik7XG4gICAgICBNb2R1bGVbXCJIRUFQVTE2XCJdID0gSEVBUFUxNiA9IG5ldyBVaW50MTZBcnJheShiKTtcbiAgICAgIE1vZHVsZVtcIkhFQVBVMzJcIl0gPSBIRUFQVTMyID0gbmV3IFVpbnQzMkFycmF5KGIpO1xuICAgICAgTW9kdWxlW1wiSEVBUEYzMlwiXSA9IEhFQVBGMzIgPSBuZXcgRmxvYXQzMkFycmF5KGIpO1xuICAgICAgTW9kdWxlW1wiSEVBUEY2NFwiXSA9IEhFQVBGNjQgPSBuZXcgRmxvYXQ2NEFycmF5KGIpO1xuICAgIH1cbiAgICB2YXIgd2FzbVRhYmxlO1xuICAgIHZhciBfX0FUUFJFUlVOX18gPSBbXTtcbiAgICB2YXIgX19BVElOSVRfXyA9IFtdO1xuICAgIHZhciBfX0FUUE9TVFJVTl9fID0gW107XG4gICAgdmFyIHJ1bnRpbWVJbml0aWFsaXplZCA9IGZhbHNlO1xuICAgIGZ1bmN0aW9uIHByZVJ1bigpIHtcbiAgICAgIGlmIChNb2R1bGVbXCJwcmVSdW5cIl0pIHtcbiAgICAgICAgaWYgKHR5cGVvZiBNb2R1bGVbXCJwcmVSdW5cIl0gPT0gXCJmdW5jdGlvblwiKVxuICAgICAgICAgIE1vZHVsZVtcInByZVJ1blwiXSA9IFtNb2R1bGVbXCJwcmVSdW5cIl1dO1xuICAgICAgICB3aGlsZSAoTW9kdWxlW1wicHJlUnVuXCJdLmxlbmd0aCkge1xuICAgICAgICAgIGFkZE9uUHJlUnVuKE1vZHVsZVtcInByZVJ1blwiXS5zaGlmdCgpKTtcbiAgICAgICAgfVxuICAgICAgfVxuICAgICAgY2FsbFJ1bnRpbWVDYWxsYmFja3MoX19BVFBSRVJVTl9fKTtcbiAgICB9XG4gICAgZnVuY3Rpb24gaW5pdFJ1bnRpbWUoKSB7XG4gICAgICBydW50aW1lSW5pdGlhbGl6ZWQgPSB0cnVlO1xuICAgICAgY2FsbFJ1bnRpbWVDYWxsYmFja3MoX19BVElOSVRfXyk7XG4gICAgfVxuICAgIGZ1bmN0aW9uIHBvc3RSdW4oKSB7XG4gICAgICBpZiAoTW9kdWxlW1wicG9zdFJ1blwiXSkge1xuICAgICAgICBpZiAodHlwZW9mIE1vZHVsZVtcInBvc3RSdW5cIl0gPT0gXCJmdW5jdGlvblwiKVxuICAgICAgICAgIE1vZHVsZVtcInBvc3RSdW5cIl0gPSBbTW9kdWxlW1wicG9zdFJ1blwiXV07XG4gICAgICAgIHdoaWxlIChNb2R1bGVbXCJwb3N0UnVuXCJdLmxlbmd0aCkge1xuICAgICAgICAgIGFkZE9uUG9zdFJ1bihNb2R1bGVbXCJwb3N0UnVuXCJdLnNoaWZ0KCkpO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgICBjYWxsUnVudGltZUNhbGxiYWNrcyhfX0FUUE9TVFJVTl9fKTtcbiAgICB9XG4gICAgZnVuY3Rpb24gYWRkT25QcmVSdW4oY2IpIHtcbiAgICAgIF9fQVRQUkVSVU5fXy51bnNoaWZ0KGNiKTtcbiAgICB9XG4gICAgZnVuY3Rpb24gYWRkT25Jbml0KGNiKSB7XG4gICAgICBfX0FUSU5JVF9fLnVuc2hpZnQoY2IpO1xuICAgIH1cbiAgICBmdW5jdGlvbiBhZGRPblBvc3RSdW4oY2IpIHtcbiAgICAgIF9fQVRQT1NUUlVOX18udW5zaGlmdChjYik7XG4gICAgfVxuICAgIHZhciBydW5EZXBlbmRlbmNpZXMgPSAwO1xuICAgIHZhciBydW5EZXBlbmRlbmN5V2F0Y2hlciA9IG51bGw7XG4gICAgdmFyIGRlcGVuZGVuY2llc0Z1bGZpbGxlZCA9IG51bGw7XG4gICAgZnVuY3Rpb24gYWRkUnVuRGVwZW5kZW5jeShpZCkge1xuICAgICAgcnVuRGVwZW5kZW5jaWVzKys7XG4gICAgICBpZiAoTW9kdWxlW1wibW9uaXRvclJ1bkRlcGVuZGVuY2llc1wiXSkge1xuICAgICAgICBNb2R1bGVbXCJtb25pdG9yUnVuRGVwZW5kZW5jaWVzXCJdKHJ1bkRlcGVuZGVuY2llcyk7XG4gICAgICB9XG4gICAgfVxuICAgIGZ1bmN0aW9uIHJlbW92ZVJ1bkRlcGVuZGVuY3koaWQpIHtcbiAgICAgIHJ1bkRlcGVuZGVuY2llcy0tO1xuICAgICAgaWYgKE1vZHVsZVtcIm1vbml0b3JSdW5EZXBlbmRlbmNpZXNcIl0pIHtcbiAgICAgICAgTW9kdWxlW1wibW9uaXRvclJ1bkRlcGVuZGVuY2llc1wiXShydW5EZXBlbmRlbmNpZXMpO1xuICAgICAgfVxuICAgICAgaWYgKHJ1bkRlcGVuZGVuY2llcyA9PSAwKSB7XG4gICAgICAgIGlmIChydW5EZXBlbmRlbmN5V2F0Y2hlciAhPT0gbnVsbCkge1xuICAgICAgICAgIGNsZWFySW50ZXJ2YWwocnVuRGVwZW5kZW5jeVdhdGNoZXIpO1xuICAgICAgICAgIHJ1bkRlcGVuZGVuY3lXYXRjaGVyID0gbnVsbDtcbiAgICAgICAgfVxuICAgICAgICBpZiAoZGVwZW5kZW5jaWVzRnVsZmlsbGVkKSB7XG4gICAgICAgICAgdmFyIGNhbGxiYWNrID0gZGVwZW5kZW5jaWVzRnVsZmlsbGVkO1xuICAgICAgICAgIGRlcGVuZGVuY2llc0Z1bGZpbGxlZCA9IG51bGw7XG4gICAgICAgICAgY2FsbGJhY2soKTtcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1cbiAgICBmdW5jdGlvbiBhYm9ydCh3aGF0KSB7XG4gICAgICBpZiAoTW9kdWxlW1wib25BYm9ydFwiXSkge1xuICAgICAgICBNb2R1bGVbXCJvbkFib3J0XCJdKHdoYXQpO1xuICAgICAgfVxuICAgICAgd2hhdCA9IFwiQWJvcnRlZChcIiArIHdoYXQgKyBcIilcIjtcbiAgICAgIGVycih3aGF0KTtcbiAgICAgIEFCT1JUID0gdHJ1ZTtcbiAgICAgIEVYSVRTVEFUVVMgPSAxO1xuICAgICAgd2hhdCArPSBcIi4gQnVpbGQgd2l0aCAtc0FTU0VSVElPTlMgZm9yIG1vcmUgaW5mby5cIjtcbiAgICAgIHZhciBlID0gbmV3IFdlYkFzc2VtYmx5LlJ1bnRpbWVFcnJvcih3aGF0KTtcbiAgICAgIHJlYWR5UHJvbWlzZVJlamVjdChlKTtcbiAgICAgIHRocm93IGU7XG4gICAgfVxuICAgIHZhciBkYXRhVVJJUHJlZml4ID0gXCJkYXRhOmFwcGxpY2F0aW9uL29jdGV0LXN0cmVhbTtiYXNlNjQsXCI7XG4gICAgZnVuY3Rpb24gaXNEYXRhVVJJKGZpbGVuYW1lKSB7XG4gICAgICByZXR1cm4gZmlsZW5hbWUuc3RhcnRzV2l0aChkYXRhVVJJUHJlZml4KTtcbiAgICB9XG4gICAgdmFyIHdhc21CaW5hcnlGaWxlO1xuICAgIHdhc21CaW5hcnlGaWxlID0gXCJ3YXNtQ2x1c3Rlci53YXNtXCI7XG4gICAgaWYgKCFpc0RhdGFVUkkod2FzbUJpbmFyeUZpbGUpKSB7XG4gICAgICB3YXNtQmluYXJ5RmlsZSA9IGxvY2F0ZUZpbGUod2FzbUJpbmFyeUZpbGUpO1xuICAgIH1cbiAgICBmdW5jdGlvbiBnZXRCaW5hcnkoZmlsZSkge1xuICAgICAgdHJ5IHtcbiAgICAgICAgaWYgKGZpbGUgPT0gd2FzbUJpbmFyeUZpbGUgJiYgd2FzbUJpbmFyeSkge1xuICAgICAgICAgIHJldHVybiBuZXcgVWludDhBcnJheSh3YXNtQmluYXJ5KTtcbiAgICAgICAgfVxuICAgICAgICBpZiAocmVhZEJpbmFyeSkge1xuICAgICAgICAgIHJldHVybiByZWFkQmluYXJ5KGZpbGUpO1xuICAgICAgICB9XG4gICAgICAgIHRocm93IFwiYm90aCBhc3luYyBhbmQgc3luYyBmZXRjaGluZyBvZiB0aGUgd2FzbSBmYWlsZWRcIjtcbiAgICAgIH0gY2F0Y2ggKGVycikge1xuICAgICAgICBhYm9ydChlcnIpO1xuICAgICAgfVxuICAgIH1cbiAgICBmdW5jdGlvbiBnZXRCaW5hcnlQcm9taXNlKGJpbmFyeUZpbGUpIHtcbiAgICAgIGlmICghd2FzbUJpbmFyeSAmJiAoRU5WSVJPTk1FTlRfSVNfV0VCIHx8IEVOVklST05NRU5UX0lTX1dPUktFUikpIHtcbiAgICAgICAgaWYgKHR5cGVvZiBmZXRjaCA9PSBcImZ1bmN0aW9uXCIpIHtcbiAgICAgICAgICByZXR1cm4gZmV0Y2goYmluYXJ5RmlsZSwgeyBjcmVkZW50aWFsczogXCJzYW1lLW9yaWdpblwiIH0pXG4gICAgICAgICAgICAudGhlbihmdW5jdGlvbiAocmVzcG9uc2UpIHtcbiAgICAgICAgICAgICAgaWYgKCFyZXNwb25zZVtcIm9rXCJdKSB7XG4gICAgICAgICAgICAgICAgdGhyb3cgXCJmYWlsZWQgdG8gbG9hZCB3YXNtIGJpbmFyeSBmaWxlIGF0ICdcIiArIGJpbmFyeUZpbGUgKyBcIidcIjtcbiAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICByZXR1cm4gcmVzcG9uc2VbXCJhcnJheUJ1ZmZlclwiXSgpO1xuICAgICAgICAgICAgfSlcbiAgICAgICAgICAgIC5jYXRjaChmdW5jdGlvbiAoKSB7XG4gICAgICAgICAgICAgIHJldHVybiBnZXRCaW5hcnkoYmluYXJ5RmlsZSk7XG4gICAgICAgICAgICB9KTtcbiAgICAgICAgfVxuICAgICAgfVxuICAgICAgcmV0dXJuIFByb21pc2UucmVzb2x2ZSgpLnRoZW4oZnVuY3Rpb24gKCkge1xuICAgICAgICByZXR1cm4gZ2V0QmluYXJ5KGJpbmFyeUZpbGUpO1xuICAgICAgfSk7XG4gICAgfVxuICAgIGZ1bmN0aW9uIGluc3RhbnRpYXRlQXJyYXlCdWZmZXIoYmluYXJ5RmlsZSwgaW1wb3J0cywgcmVjZWl2ZXIpIHtcbiAgICAgIHJldHVybiBnZXRCaW5hcnlQcm9taXNlKGJpbmFyeUZpbGUpXG4gICAgICAgIC50aGVuKGZ1bmN0aW9uIChiaW5hcnkpIHtcbiAgICAgICAgICByZXR1cm4gV2ViQXNzZW1ibHkuaW5zdGFudGlhdGUoYmluYXJ5LCBpbXBvcnRzKTtcbiAgICAgICAgfSlcbiAgICAgICAgLnRoZW4oZnVuY3Rpb24gKGluc3RhbmNlKSB7XG4gICAgICAgICAgcmV0dXJuIGluc3RhbmNlO1xuICAgICAgICB9KVxuICAgICAgICAudGhlbihyZWNlaXZlciwgZnVuY3Rpb24gKHJlYXNvbikge1xuICAgICAgICAgIGVycihcImZhaWxlZCB0byBhc3luY2hyb25vdXNseSBwcmVwYXJlIHdhc206IFwiICsgcmVhc29uKTtcbiAgICAgICAgICBhYm9ydChyZWFzb24pO1xuICAgICAgICB9KTtcbiAgICB9XG4gICAgZnVuY3Rpb24gaW5zdGFudGlhdGVBc3luYyhiaW5hcnksIGJpbmFyeUZpbGUsIGltcG9ydHMsIGNhbGxiYWNrKSB7XG4gICAgICBpZiAoXG4gICAgICAgICFiaW5hcnkgJiZcbiAgICAgICAgdHlwZW9mIFdlYkFzc2VtYmx5Lmluc3RhbnRpYXRlU3RyZWFtaW5nID09IFwiZnVuY3Rpb25cIiAmJlxuICAgICAgICAhaXNEYXRhVVJJKGJpbmFyeUZpbGUpICYmXG4gICAgICAgIHR5cGVvZiBmZXRjaCA9PSBcImZ1bmN0aW9uXCJcbiAgICAgICkge1xuICAgICAgICByZXR1cm4gZmV0Y2goYmluYXJ5RmlsZSwgeyBjcmVkZW50aWFsczogXCJzYW1lLW9yaWdpblwiIH0pLnRoZW4oZnVuY3Rpb24gKFxuICAgICAgICAgIHJlc3BvbnNlXG4gICAgICAgICkge1xuICAgICAgICAgIHZhciByZXN1bHQgPSBXZWJBc3NlbWJseS5pbnN0YW50aWF0ZVN0cmVhbWluZyhyZXNwb25zZSwgaW1wb3J0cyk7XG4gICAgICAgICAgcmV0dXJuIHJlc3VsdC50aGVuKGNhbGxiYWNrLCBmdW5jdGlvbiAocmVhc29uKSB7XG4gICAgICAgICAgICBlcnIoXCJ3YXNtIHN0cmVhbWluZyBjb21waWxlIGZhaWxlZDogXCIgKyByZWFzb24pO1xuICAgICAgICAgICAgZXJyKFwiZmFsbGluZyBiYWNrIHRvIEFycmF5QnVmZmVyIGluc3RhbnRpYXRpb25cIik7XG4gICAgICAgICAgICByZXR1cm4gaW5zdGFudGlhdGVBcnJheUJ1ZmZlcihiaW5hcnlGaWxlLCBpbXBvcnRzLCBjYWxsYmFjayk7XG4gICAgICAgICAgfSk7XG4gICAgICAgIH0pO1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgcmV0dXJuIGluc3RhbnRpYXRlQXJyYXlCdWZmZXIoYmluYXJ5RmlsZSwgaW1wb3J0cywgY2FsbGJhY2spO1xuICAgICAgfVxuICAgIH1cbiAgICBmdW5jdGlvbiBjcmVhdGVXYXNtKCkge1xuICAgICAgdmFyIGluZm8gPSB7IGE6IHdhc21JbXBvcnRzIH07XG4gICAgICBmdW5jdGlvbiByZWNlaXZlSW5zdGFuY2UoaW5zdGFuY2UsIG1vZHVsZSkge1xuICAgICAgICB2YXIgZXhwb3J0cyA9IGluc3RhbmNlLmV4cG9ydHM7XG4gICAgICAgIE1vZHVsZVtcImFzbVwiXSA9IGV4cG9ydHM7XG4gICAgICAgIHdhc21NZW1vcnkgPSBNb2R1bGVbXCJhc21cIl1bXCJlXCJdO1xuICAgICAgICB1cGRhdGVNZW1vcnlWaWV3cygpO1xuICAgICAgICB3YXNtVGFibGUgPSBNb2R1bGVbXCJhc21cIl1bXCJpXCJdO1xuICAgICAgICBhZGRPbkluaXQoTW9kdWxlW1wiYXNtXCJdW1wiZlwiXSk7XG4gICAgICAgIHJlbW92ZVJ1bkRlcGVuZGVuY3koXCJ3YXNtLWluc3RhbnRpYXRlXCIpO1xuICAgICAgICByZXR1cm4gZXhwb3J0cztcbiAgICAgIH1cbiAgICAgIGFkZFJ1bkRlcGVuZGVuY3koXCJ3YXNtLWluc3RhbnRpYXRlXCIpO1xuICAgICAgZnVuY3Rpb24gcmVjZWl2ZUluc3RhbnRpYXRpb25SZXN1bHQocmVzdWx0KSB7XG4gICAgICAgIHJlY2VpdmVJbnN0YW5jZShyZXN1bHRbXCJpbnN0YW5jZVwiXSk7XG4gICAgICB9XG4gICAgICBpZiAoTW9kdWxlW1wiaW5zdGFudGlhdGVXYXNtXCJdKSB7XG4gICAgICAgIHRyeSB7XG4gICAgICAgICAgcmV0dXJuIE1vZHVsZVtcImluc3RhbnRpYXRlV2FzbVwiXShpbmZvLCByZWNlaXZlSW5zdGFuY2UpO1xuICAgICAgICB9IGNhdGNoIChlKSB7XG4gICAgICAgICAgZXJyKFwiTW9kdWxlLmluc3RhbnRpYXRlV2FzbSBjYWxsYmFjayBmYWlsZWQgd2l0aCBlcnJvcjogXCIgKyBlKTtcbiAgICAgICAgICByZWFkeVByb21pc2VSZWplY3QoZSk7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICAgIGluc3RhbnRpYXRlQXN5bmMoXG4gICAgICAgIHdhc21CaW5hcnksXG4gICAgICAgIHdhc21CaW5hcnlGaWxlLFxuICAgICAgICBpbmZvLFxuICAgICAgICByZWNlaXZlSW5zdGFudGlhdGlvblJlc3VsdFxuICAgICAgKS5jYXRjaChyZWFkeVByb21pc2VSZWplY3QpO1xuICAgICAgcmV0dXJuIHt9O1xuICAgIH1cbiAgICBmdW5jdGlvbiBjYWxsUnVudGltZUNhbGxiYWNrcyhjYWxsYmFja3MpIHtcbiAgICAgIHdoaWxlIChjYWxsYmFja3MubGVuZ3RoID4gMCkge1xuICAgICAgICBjYWxsYmFja3Muc2hpZnQoKShNb2R1bGUpO1xuICAgICAgfVxuICAgIH1cbiAgICBmdW5jdGlvbiBFeGNlcHRpb25JbmZvKGV4Y1B0cikge1xuICAgICAgdGhpcy5leGNQdHIgPSBleGNQdHI7XG4gICAgICB0aGlzLnB0ciA9IGV4Y1B0ciAtIDI0O1xuICAgICAgdGhpcy5zZXRfdHlwZSA9IGZ1bmN0aW9uICh0eXBlKSB7XG4gICAgICAgIEhFQVBVMzJbKHRoaXMucHRyICsgNCkgPj4gMl0gPSB0eXBlO1xuICAgICAgfTtcbiAgICAgIHRoaXMuZ2V0X3R5cGUgPSBmdW5jdGlvbiAoKSB7XG4gICAgICAgIHJldHVybiBIRUFQVTMyWyh0aGlzLnB0ciArIDQpID4+IDJdO1xuICAgICAgfTtcbiAgICAgIHRoaXMuc2V0X2Rlc3RydWN0b3IgPSBmdW5jdGlvbiAoZGVzdHJ1Y3Rvcikge1xuICAgICAgICBIRUFQVTMyWyh0aGlzLnB0ciArIDgpID4+IDJdID0gZGVzdHJ1Y3RvcjtcbiAgICAgIH07XG4gICAgICB0aGlzLmdldF9kZXN0cnVjdG9yID0gZnVuY3Rpb24gKCkge1xuICAgICAgICByZXR1cm4gSEVBUFUzMlsodGhpcy5wdHIgKyA4KSA+PiAyXTtcbiAgICAgIH07XG4gICAgICB0aGlzLnNldF9jYXVnaHQgPSBmdW5jdGlvbiAoY2F1Z2h0KSB7XG4gICAgICAgIGNhdWdodCA9IGNhdWdodCA/IDEgOiAwO1xuICAgICAgICBIRUFQOFsodGhpcy5wdHIgKyAxMikgPj4gMF0gPSBjYXVnaHQ7XG4gICAgICB9O1xuICAgICAgdGhpcy5nZXRfY2F1Z2h0ID0gZnVuY3Rpb24gKCkge1xuICAgICAgICByZXR1cm4gSEVBUDhbKHRoaXMucHRyICsgMTIpID4+IDBdICE9IDA7XG4gICAgICB9O1xuICAgICAgdGhpcy5zZXRfcmV0aHJvd24gPSBmdW5jdGlvbiAocmV0aHJvd24pIHtcbiAgICAgICAgcmV0aHJvd24gPSByZXRocm93biA/IDEgOiAwO1xuICAgICAgICBIRUFQOFsodGhpcy5wdHIgKyAxMykgPj4gMF0gPSByZXRocm93bjtcbiAgICAgIH07XG4gICAgICB0aGlzLmdldF9yZXRocm93biA9IGZ1bmN0aW9uICgpIHtcbiAgICAgICAgcmV0dXJuIEhFQVA4Wyh0aGlzLnB0ciArIDEzKSA+PiAwXSAhPSAwO1xuICAgICAgfTtcbiAgICAgIHRoaXMuaW5pdCA9IGZ1bmN0aW9uICh0eXBlLCBkZXN0cnVjdG9yKSB7XG4gICAgICAgIHRoaXMuc2V0X2FkanVzdGVkX3B0cigwKTtcbiAgICAgICAgdGhpcy5zZXRfdHlwZSh0eXBlKTtcbiAgICAgICAgdGhpcy5zZXRfZGVzdHJ1Y3RvcihkZXN0cnVjdG9yKTtcbiAgICAgIH07XG4gICAgICB0aGlzLnNldF9hZGp1c3RlZF9wdHIgPSBmdW5jdGlvbiAoYWRqdXN0ZWRQdHIpIHtcbiAgICAgICAgSEVBUFUzMlsodGhpcy5wdHIgKyAxNikgPj4gMl0gPSBhZGp1c3RlZFB0cjtcbiAgICAgIH07XG4gICAgICB0aGlzLmdldF9hZGp1c3RlZF9wdHIgPSBmdW5jdGlvbiAoKSB7XG4gICAgICAgIHJldHVybiBIRUFQVTMyWyh0aGlzLnB0ciArIDE2KSA+PiAyXTtcbiAgICAgIH07XG4gICAgICB0aGlzLmdldF9leGNlcHRpb25fcHRyID0gZnVuY3Rpb24gKCkge1xuICAgICAgICB2YXIgaXNQb2ludGVyID0gX19fY3hhX2lzX3BvaW50ZXJfdHlwZSh0aGlzLmdldF90eXBlKCkpO1xuICAgICAgICBpZiAoaXNQb2ludGVyKSB7XG4gICAgICAgICAgcmV0dXJuIEhFQVBVMzJbdGhpcy5leGNQdHIgPj4gMl07XG4gICAgICAgIH1cbiAgICAgICAgdmFyIGFkanVzdGVkID0gdGhpcy5nZXRfYWRqdXN0ZWRfcHRyKCk7XG4gICAgICAgIGlmIChhZGp1c3RlZCAhPT0gMCkgcmV0dXJuIGFkanVzdGVkO1xuICAgICAgICByZXR1cm4gdGhpcy5leGNQdHI7XG4gICAgICB9O1xuICAgIH1cbiAgICB2YXIgZXhjZXB0aW9uTGFzdCA9IDA7XG4gICAgdmFyIHVuY2F1Z2h0RXhjZXB0aW9uQ291bnQgPSAwO1xuICAgIGZ1bmN0aW9uIF9fX2N4YV90aHJvdyhwdHIsIHR5cGUsIGRlc3RydWN0b3IpIHtcbiAgICAgIHZhciBpbmZvID0gbmV3IEV4Y2VwdGlvbkluZm8ocHRyKTtcbiAgICAgIGluZm8uaW5pdCh0eXBlLCBkZXN0cnVjdG9yKTtcbiAgICAgIGV4Y2VwdGlvbkxhc3QgPSBwdHI7XG4gICAgICB1bmNhdWdodEV4Y2VwdGlvbkNvdW50Kys7XG4gICAgICB0aHJvdyBleGNlcHRpb25MYXN0O1xuICAgIH1cbiAgICBmdW5jdGlvbiBfYWJvcnQoKSB7XG4gICAgICBhYm9ydChcIlwiKTtcbiAgICB9XG4gICAgZnVuY3Rpb24gX2Vtc2NyaXB0ZW5fbWVtY3B5X2JpZyhkZXN0LCBzcmMsIG51bSkge1xuICAgICAgSEVBUFU4LmNvcHlXaXRoaW4oZGVzdCwgc3JjLCBzcmMgKyBudW0pO1xuICAgIH1cbiAgICBmdW5jdGlvbiBnZXRIZWFwTWF4KCkge1xuICAgICAgcmV0dXJuIDIxNDc0ODM2NDg7XG4gICAgfVxuICAgIGZ1bmN0aW9uIGVtc2NyaXB0ZW5fcmVhbGxvY19idWZmZXIoc2l6ZSkge1xuICAgICAgdmFyIGIgPSB3YXNtTWVtb3J5LmJ1ZmZlcjtcbiAgICAgIHRyeSB7XG4gICAgICAgIHdhc21NZW1vcnkuZ3Jvdygoc2l6ZSAtIGIuYnl0ZUxlbmd0aCArIDY1NTM1KSA+Pj4gMTYpO1xuICAgICAgICB1cGRhdGVNZW1vcnlWaWV3cygpO1xuICAgICAgICByZXR1cm4gMTtcbiAgICAgIH0gY2F0Y2ggKGUpIHt9XG4gICAgfVxuICAgIGZ1bmN0aW9uIF9lbXNjcmlwdGVuX3Jlc2l6ZV9oZWFwKHJlcXVlc3RlZFNpemUpIHtcbiAgICAgIHZhciBvbGRTaXplID0gSEVBUFU4Lmxlbmd0aDtcbiAgICAgIHJlcXVlc3RlZFNpemUgPSByZXF1ZXN0ZWRTaXplID4+PiAwO1xuICAgICAgdmFyIG1heEhlYXBTaXplID0gZ2V0SGVhcE1heCgpO1xuICAgICAgaWYgKHJlcXVlc3RlZFNpemUgPiBtYXhIZWFwU2l6ZSkge1xuICAgICAgICByZXR1cm4gZmFsc2U7XG4gICAgICB9XG4gICAgICBsZXQgYWxpZ25VcCA9ICh4LCBtdWx0aXBsZSkgPT5cbiAgICAgICAgeCArICgobXVsdGlwbGUgLSAoeCAlIG11bHRpcGxlKSkgJSBtdWx0aXBsZSk7XG4gICAgICBmb3IgKHZhciBjdXREb3duID0gMTsgY3V0RG93biA8PSA0OyBjdXREb3duICo9IDIpIHtcbiAgICAgICAgdmFyIG92ZXJHcm93bkhlYXBTaXplID0gb2xkU2l6ZSAqICgxICsgMC4yIC8gY3V0RG93bik7XG4gICAgICAgIG92ZXJHcm93bkhlYXBTaXplID0gTWF0aC5taW4oXG4gICAgICAgICAgb3Zlckdyb3duSGVhcFNpemUsXG4gICAgICAgICAgcmVxdWVzdGVkU2l6ZSArIDEwMDY2MzI5NlxuICAgICAgICApO1xuICAgICAgICB2YXIgbmV3U2l6ZSA9IE1hdGgubWluKFxuICAgICAgICAgIG1heEhlYXBTaXplLFxuICAgICAgICAgIGFsaWduVXAoTWF0aC5tYXgocmVxdWVzdGVkU2l6ZSwgb3Zlckdyb3duSGVhcFNpemUpLCA2NTUzNilcbiAgICAgICAgKTtcbiAgICAgICAgdmFyIHJlcGxhY2VtZW50ID0gZW1zY3JpcHRlbl9yZWFsbG9jX2J1ZmZlcihuZXdTaXplKTtcbiAgICAgICAgaWYgKHJlcGxhY2VtZW50KSB7XG4gICAgICAgICAgcmV0dXJuIHRydWU7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICAgIHJldHVybiBmYWxzZTtcbiAgICB9XG4gICAgZnVuY3Rpb24gZ2V0Q0Z1bmMoaWRlbnQpIHtcbiAgICAgIHZhciBmdW5jID0gTW9kdWxlW1wiX1wiICsgaWRlbnRdO1xuICAgICAgcmV0dXJuIGZ1bmM7XG4gICAgfVxuICAgIGZ1bmN0aW9uIHdyaXRlQXJyYXlUb01lbW9yeShhcnJheSwgYnVmZmVyKSB7XG4gICAgICBIRUFQOC5zZXQoYXJyYXksIGJ1ZmZlcik7XG4gICAgfVxuICAgIGZ1bmN0aW9uIGxlbmd0aEJ5dGVzVVRGOChzdHIpIHtcbiAgICAgIHZhciBsZW4gPSAwO1xuICAgICAgZm9yICh2YXIgaSA9IDA7IGkgPCBzdHIubGVuZ3RoOyArK2kpIHtcbiAgICAgICAgdmFyIGMgPSBzdHIuY2hhckNvZGVBdChpKTtcbiAgICAgICAgaWYgKGMgPD0gMTI3KSB7XG4gICAgICAgICAgbGVuKys7XG4gICAgICAgIH0gZWxzZSBpZiAoYyA8PSAyMDQ3KSB7XG4gICAgICAgICAgbGVuICs9IDI7XG4gICAgICAgIH0gZWxzZSBpZiAoYyA+PSA1NTI5NiAmJiBjIDw9IDU3MzQzKSB7XG4gICAgICAgICAgbGVuICs9IDQ7XG4gICAgICAgICAgKytpO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgIGxlbiArPSAzO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgICByZXR1cm4gbGVuO1xuICAgIH1cbiAgICBmdW5jdGlvbiBzdHJpbmdUb1VURjhBcnJheShzdHIsIGhlYXAsIG91dElkeCwgbWF4Qnl0ZXNUb1dyaXRlKSB7XG4gICAgICBpZiAoIShtYXhCeXRlc1RvV3JpdGUgPiAwKSkgcmV0dXJuIDA7XG4gICAgICB2YXIgc3RhcnRJZHggPSBvdXRJZHg7XG4gICAgICB2YXIgZW5kSWR4ID0gb3V0SWR4ICsgbWF4Qnl0ZXNUb1dyaXRlIC0gMTtcbiAgICAgIGZvciAodmFyIGkgPSAwOyBpIDwgc3RyLmxlbmd0aDsgKytpKSB7XG4gICAgICAgIHZhciB1ID0gc3RyLmNoYXJDb2RlQXQoaSk7XG4gICAgICAgIGlmICh1ID49IDU1Mjk2ICYmIHUgPD0gNTczNDMpIHtcbiAgICAgICAgICB2YXIgdTEgPSBzdHIuY2hhckNvZGVBdCgrK2kpO1xuICAgICAgICAgIHUgPSAoNjU1MzYgKyAoKHUgJiAxMDIzKSA8PCAxMCkpIHwgKHUxICYgMTAyMyk7XG4gICAgICAgIH1cbiAgICAgICAgaWYgKHUgPD0gMTI3KSB7XG4gICAgICAgICAgaWYgKG91dElkeCA+PSBlbmRJZHgpIGJyZWFrO1xuICAgICAgICAgIGhlYXBbb3V0SWR4KytdID0gdTtcbiAgICAgICAgfSBlbHNlIGlmICh1IDw9IDIwNDcpIHtcbiAgICAgICAgICBpZiAob3V0SWR4ICsgMSA+PSBlbmRJZHgpIGJyZWFrO1xuICAgICAgICAgIGhlYXBbb3V0SWR4KytdID0gMTkyIHwgKHUgPj4gNik7XG4gICAgICAgICAgaGVhcFtvdXRJZHgrK10gPSAxMjggfCAodSAmIDYzKTtcbiAgICAgICAgfSBlbHNlIGlmICh1IDw9IDY1NTM1KSB7XG4gICAgICAgICAgaWYgKG91dElkeCArIDIgPj0gZW5kSWR4KSBicmVhaztcbiAgICAgICAgICBoZWFwW291dElkeCsrXSA9IDIyNCB8ICh1ID4+IDEyKTtcbiAgICAgICAgICBoZWFwW291dElkeCsrXSA9IDEyOCB8ICgodSA+PiA2KSAmIDYzKTtcbiAgICAgICAgICBoZWFwW291dElkeCsrXSA9IDEyOCB8ICh1ICYgNjMpO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgIGlmIChvdXRJZHggKyAzID49IGVuZElkeCkgYnJlYWs7XG4gICAgICAgICAgaGVhcFtvdXRJZHgrK10gPSAyNDAgfCAodSA+PiAxOCk7XG4gICAgICAgICAgaGVhcFtvdXRJZHgrK10gPSAxMjggfCAoKHUgPj4gMTIpICYgNjMpO1xuICAgICAgICAgIGhlYXBbb3V0SWR4KytdID0gMTI4IHwgKCh1ID4+IDYpICYgNjMpO1xuICAgICAgICAgIGhlYXBbb3V0SWR4KytdID0gMTI4IHwgKHUgJiA2Myk7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICAgIGhlYXBbb3V0SWR4XSA9IDA7XG4gICAgICByZXR1cm4gb3V0SWR4IC0gc3RhcnRJZHg7XG4gICAgfVxuICAgIGZ1bmN0aW9uIHN0cmluZ1RvVVRGOChzdHIsIG91dFB0ciwgbWF4Qnl0ZXNUb1dyaXRlKSB7XG4gICAgICByZXR1cm4gc3RyaW5nVG9VVEY4QXJyYXkoc3RyLCBIRUFQVTgsIG91dFB0ciwgbWF4Qnl0ZXNUb1dyaXRlKTtcbiAgICB9XG4gICAgZnVuY3Rpb24gc3RyaW5nVG9VVEY4T25TdGFjayhzdHIpIHtcbiAgICAgIHZhciBzaXplID0gbGVuZ3RoQnl0ZXNVVEY4KHN0cikgKyAxO1xuICAgICAgdmFyIHJldCA9IHN0YWNrQWxsb2Moc2l6ZSk7XG4gICAgICBzdHJpbmdUb1VURjgoc3RyLCByZXQsIHNpemUpO1xuICAgICAgcmV0dXJuIHJldDtcbiAgICB9XG4gICAgdmFyIFVURjhEZWNvZGVyID1cbiAgICAgIHR5cGVvZiBUZXh0RGVjb2RlciAhPSBcInVuZGVmaW5lZFwiID8gbmV3IFRleHREZWNvZGVyKFwidXRmOFwiKSA6IHVuZGVmaW5lZDtcbiAgICBmdW5jdGlvbiBVVEY4QXJyYXlUb1N0cmluZyhoZWFwT3JBcnJheSwgaWR4LCBtYXhCeXRlc1RvUmVhZCkge1xuICAgICAgdmFyIGVuZElkeCA9IGlkeCArIG1heEJ5dGVzVG9SZWFkO1xuICAgICAgdmFyIGVuZFB0ciA9IGlkeDtcbiAgICAgIHdoaWxlIChoZWFwT3JBcnJheVtlbmRQdHJdICYmICEoZW5kUHRyID49IGVuZElkeCkpICsrZW5kUHRyO1xuICAgICAgaWYgKGVuZFB0ciAtIGlkeCA+IDE2ICYmIGhlYXBPckFycmF5LmJ1ZmZlciAmJiBVVEY4RGVjb2Rlcikge1xuICAgICAgICByZXR1cm4gVVRGOERlY29kZXIuZGVjb2RlKGhlYXBPckFycmF5LnN1YmFycmF5KGlkeCwgZW5kUHRyKSk7XG4gICAgICB9XG4gICAgICB2YXIgc3RyID0gXCJcIjtcbiAgICAgIHdoaWxlIChpZHggPCBlbmRQdHIpIHtcbiAgICAgICAgdmFyIHUwID0gaGVhcE9yQXJyYXlbaWR4KytdO1xuICAgICAgICBpZiAoISh1MCAmIDEyOCkpIHtcbiAgICAgICAgICBzdHIgKz0gU3RyaW5nLmZyb21DaGFyQ29kZSh1MCk7XG4gICAgICAgICAgY29udGludWU7XG4gICAgICAgIH1cbiAgICAgICAgdmFyIHUxID0gaGVhcE9yQXJyYXlbaWR4KytdICYgNjM7XG4gICAgICAgIGlmICgodTAgJiAyMjQpID09IDE5Mikge1xuICAgICAgICAgIHN0ciArPSBTdHJpbmcuZnJvbUNoYXJDb2RlKCgodTAgJiAzMSkgPDwgNikgfCB1MSk7XG4gICAgICAgICAgY29udGludWU7XG4gICAgICAgIH1cbiAgICAgICAgdmFyIHUyID0gaGVhcE9yQXJyYXlbaWR4KytdICYgNjM7XG4gICAgICAgIGlmICgodTAgJiAyNDApID09IDIyNCkge1xuICAgICAgICAgIHUwID0gKCh1MCAmIDE1KSA8PCAxMikgfCAodTEgPDwgNikgfCB1MjtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICB1MCA9XG4gICAgICAgICAgICAoKHUwICYgNykgPDwgMTgpIHxcbiAgICAgICAgICAgICh1MSA8PCAxMikgfFxuICAgICAgICAgICAgKHUyIDw8IDYpIHxcbiAgICAgICAgICAgIChoZWFwT3JBcnJheVtpZHgrK10gJiA2Myk7XG4gICAgICAgIH1cbiAgICAgICAgaWYgKHUwIDwgNjU1MzYpIHtcbiAgICAgICAgICBzdHIgKz0gU3RyaW5nLmZyb21DaGFyQ29kZSh1MCk7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgdmFyIGNoID0gdTAgLSA2NTUzNjtcbiAgICAgICAgICBzdHIgKz0gU3RyaW5nLmZyb21DaGFyQ29kZSg1NTI5NiB8IChjaCA+PiAxMCksIDU2MzIwIHwgKGNoICYgMTAyMykpO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgICByZXR1cm4gc3RyO1xuICAgIH1cbiAgICBmdW5jdGlvbiBVVEY4VG9TdHJpbmcocHRyLCBtYXhCeXRlc1RvUmVhZCkge1xuICAgICAgcmV0dXJuIHB0ciA/IFVURjhBcnJheVRvU3RyaW5nKEhFQVBVOCwgcHRyLCBtYXhCeXRlc1RvUmVhZCkgOiBcIlwiO1xuICAgIH1cbiAgICBmdW5jdGlvbiBjY2FsbChpZGVudCwgcmV0dXJuVHlwZSwgYXJnVHlwZXMsIGFyZ3MsIG9wdHMpIHtcbiAgICAgIHZhciB0b0MgPSB7XG4gICAgICAgIHN0cmluZzogKHN0cikgPT4ge1xuICAgICAgICAgIHZhciByZXQgPSAwO1xuICAgICAgICAgIGlmIChzdHIgIT09IG51bGwgJiYgc3RyICE9PSB1bmRlZmluZWQgJiYgc3RyICE9PSAwKSB7XG4gICAgICAgICAgICByZXQgPSBzdHJpbmdUb1VURjhPblN0YWNrKHN0cik7XG4gICAgICAgICAgfVxuICAgICAgICAgIHJldHVybiByZXQ7XG4gICAgICAgIH0sXG4gICAgICAgIGFycmF5OiAoYXJyKSA9PiB7XG4gICAgICAgICAgdmFyIHJldCA9IHN0YWNrQWxsb2MoYXJyLmxlbmd0aCk7XG4gICAgICAgICAgd3JpdGVBcnJheVRvTWVtb3J5KGFyciwgcmV0KTtcbiAgICAgICAgICByZXR1cm4gcmV0O1xuICAgICAgICB9LFxuICAgICAgfTtcbiAgICAgIGZ1bmN0aW9uIGNvbnZlcnRSZXR1cm5WYWx1ZShyZXQpIHtcbiAgICAgICAgaWYgKHJldHVyblR5cGUgPT09IFwic3RyaW5nXCIpIHtcbiAgICAgICAgICByZXR1cm4gVVRGOFRvU3RyaW5nKHJldCk7XG4gICAgICAgIH1cbiAgICAgICAgaWYgKHJldHVyblR5cGUgPT09IFwiYm9vbGVhblwiKSByZXR1cm4gQm9vbGVhbihyZXQpO1xuICAgICAgICByZXR1cm4gcmV0O1xuICAgICAgfVxuICAgICAgdmFyIGZ1bmMgPSBnZXRDRnVuYyhpZGVudCk7XG4gICAgICB2YXIgY0FyZ3MgPSBbXTtcbiAgICAgIHZhciBzdGFjayA9IDA7XG4gICAgICBpZiAoYXJncykge1xuICAgICAgICBmb3IgKHZhciBpID0gMDsgaSA8IGFyZ3MubGVuZ3RoOyBpKyspIHtcbiAgICAgICAgICB2YXIgY29udmVydGVyID0gdG9DW2FyZ1R5cGVzW2ldXTtcbiAgICAgICAgICBpZiAoY29udmVydGVyKSB7XG4gICAgICAgICAgICBpZiAoc3RhY2sgPT09IDApIHN0YWNrID0gc3RhY2tTYXZlKCk7XG4gICAgICAgICAgICBjQXJnc1tpXSA9IGNvbnZlcnRlcihhcmdzW2ldKTtcbiAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgY0FyZ3NbaV0gPSBhcmdzW2ldO1xuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfVxuICAgICAgdmFyIHJldCA9IGZ1bmMuYXBwbHkobnVsbCwgY0FyZ3MpO1xuICAgICAgZnVuY3Rpb24gb25Eb25lKHJldCkge1xuICAgICAgICBpZiAoc3RhY2sgIT09IDApIHN0YWNrUmVzdG9yZShzdGFjayk7XG4gICAgICAgIHJldHVybiBjb252ZXJ0UmV0dXJuVmFsdWUocmV0KTtcbiAgICAgIH1cbiAgICAgIHJldCA9IG9uRG9uZShyZXQpO1xuICAgICAgcmV0dXJuIHJldDtcbiAgICB9XG4gICAgZnVuY3Rpb24gY3dyYXAoaWRlbnQsIHJldHVyblR5cGUsIGFyZ1R5cGVzLCBvcHRzKSB7XG4gICAgICB2YXIgbnVtZXJpY0FyZ3MgPVxuICAgICAgICAhYXJnVHlwZXMgfHxcbiAgICAgICAgYXJnVHlwZXMuZXZlcnkoKHR5cGUpID0+IHR5cGUgPT09IFwibnVtYmVyXCIgfHwgdHlwZSA9PT0gXCJib29sZWFuXCIpO1xuICAgICAgdmFyIG51bWVyaWNSZXQgPSByZXR1cm5UeXBlICE9PSBcInN0cmluZ1wiO1xuICAgICAgaWYgKG51bWVyaWNSZXQgJiYgbnVtZXJpY0FyZ3MgJiYgIW9wdHMpIHtcbiAgICAgICAgcmV0dXJuIGdldENGdW5jKGlkZW50KTtcbiAgICAgIH1cbiAgICAgIHJldHVybiBmdW5jdGlvbiAoKSB7XG4gICAgICAgIHJldHVybiBjY2FsbChpZGVudCwgcmV0dXJuVHlwZSwgYXJnVHlwZXMsIGFyZ3VtZW50cywgb3B0cyk7XG4gICAgICB9O1xuICAgIH1cbiAgICB2YXIgd2FzbUltcG9ydHMgPSB7XG4gICAgICBkOiBfX19jeGFfdGhyb3csXG4gICAgICBhOiBfYWJvcnQsXG4gICAgICBjOiBfZW1zY3JpcHRlbl9tZW1jcHlfYmlnLFxuICAgICAgYjogX2Vtc2NyaXB0ZW5fcmVzaXplX2hlYXAsXG4gICAgfTtcbiAgICB2YXIgYXNtID0gY3JlYXRlV2FzbSgpO1xuICAgIHZhciBfX193YXNtX2NhbGxfY3RvcnMgPSBmdW5jdGlvbiAoKSB7XG4gICAgICByZXR1cm4gKF9fX3dhc21fY2FsbF9jdG9ycyA9IE1vZHVsZVtcImFzbVwiXVtcImZcIl0pLmFwcGx5KG51bGwsIGFyZ3VtZW50cyk7XG4gICAgfTtcbiAgICB2YXIgX2dldERlbmRyb2dyYW0gPSAoTW9kdWxlW1wiX2dldERlbmRyb2dyYW1cIl0gPSBmdW5jdGlvbiAoKSB7XG4gICAgICByZXR1cm4gKF9nZXREZW5kcm9ncmFtID0gTW9kdWxlW1wiX2dldERlbmRyb2dyYW1cIl0gPVxuICAgICAgICBNb2R1bGVbXCJhc21cIl1bXCJnXCJdKS5hcHBseShudWxsLCBhcmd1bWVudHMpO1xuICAgIH0pO1xuICAgIHZhciBfZnJlZSA9IChNb2R1bGVbXCJfZnJlZVwiXSA9IGZ1bmN0aW9uICgpIHtcbiAgICAgIHJldHVybiAoX2ZyZWUgPSBNb2R1bGVbXCJfZnJlZVwiXSA9IE1vZHVsZVtcImFzbVwiXVtcImhcIl0pLmFwcGx5KFxuICAgICAgICBudWxsLFxuICAgICAgICBhcmd1bWVudHNcbiAgICAgICk7XG4gICAgfSk7XG4gICAgdmFyIF9fX2Vycm5vX2xvY2F0aW9uID0gZnVuY3Rpb24gKCkge1xuICAgICAgcmV0dXJuIChfX19lcnJub19sb2NhdGlvbiA9IE1vZHVsZVtcImFzbVwiXVtcIl9fZXJybm9fbG9jYXRpb25cIl0pLmFwcGx5KFxuICAgICAgICBudWxsLFxuICAgICAgICBhcmd1bWVudHNcbiAgICAgICk7XG4gICAgfTtcbiAgICB2YXIgX21hbGxvYyA9IChNb2R1bGVbXCJfbWFsbG9jXCJdID0gZnVuY3Rpb24gKCkge1xuICAgICAgcmV0dXJuIChfbWFsbG9jID0gTW9kdWxlW1wiX21hbGxvY1wiXSA9IE1vZHVsZVtcImFzbVwiXVtcImpcIl0pLmFwcGx5KFxuICAgICAgICBudWxsLFxuICAgICAgICBhcmd1bWVudHNcbiAgICAgICk7XG4gICAgfSk7XG4gICAgdmFyIHN0YWNrU2F2ZSA9IGZ1bmN0aW9uICgpIHtcbiAgICAgIHJldHVybiAoc3RhY2tTYXZlID0gTW9kdWxlW1wiYXNtXCJdW1wia1wiXSkuYXBwbHkobnVsbCwgYXJndW1lbnRzKTtcbiAgICB9O1xuICAgIHZhciBzdGFja1Jlc3RvcmUgPSBmdW5jdGlvbiAoKSB7XG4gICAgICByZXR1cm4gKHN0YWNrUmVzdG9yZSA9IE1vZHVsZVtcImFzbVwiXVtcImxcIl0pLmFwcGx5KG51bGwsIGFyZ3VtZW50cyk7XG4gICAgfTtcbiAgICB2YXIgc3RhY2tBbGxvYyA9IGZ1bmN0aW9uICgpIHtcbiAgICAgIHJldHVybiAoc3RhY2tBbGxvYyA9IE1vZHVsZVtcImFzbVwiXVtcIm1cIl0pLmFwcGx5KG51bGwsIGFyZ3VtZW50cyk7XG4gICAgfTtcbiAgICB2YXIgX19fY3hhX2lzX3BvaW50ZXJfdHlwZSA9IGZ1bmN0aW9uICgpIHtcbiAgICAgIHJldHVybiAoX19fY3hhX2lzX3BvaW50ZXJfdHlwZSA9IE1vZHVsZVtcImFzbVwiXVtcIm5cIl0pLmFwcGx5KFxuICAgICAgICBudWxsLFxuICAgICAgICBhcmd1bWVudHNcbiAgICAgICk7XG4gICAgfTtcbiAgICBNb2R1bGVbXCJjY2FsbFwiXSA9IGNjYWxsO1xuICAgIE1vZHVsZVtcImN3cmFwXCJdID0gY3dyYXA7XG4gICAgdmFyIGNhbGxlZFJ1bjtcbiAgICBkZXBlbmRlbmNpZXNGdWxmaWxsZWQgPSBmdW5jdGlvbiBydW5DYWxsZXIoKSB7XG4gICAgICBpZiAoIWNhbGxlZFJ1bikgcnVuKCk7XG4gICAgICBpZiAoIWNhbGxlZFJ1bikgZGVwZW5kZW5jaWVzRnVsZmlsbGVkID0gcnVuQ2FsbGVyO1xuICAgIH07XG4gICAgZnVuY3Rpb24gcnVuKCkge1xuICAgICAgaWYgKHJ1bkRlcGVuZGVuY2llcyA+IDApIHtcbiAgICAgICAgcmV0dXJuO1xuICAgICAgfVxuICAgICAgcHJlUnVuKCk7XG4gICAgICBpZiAocnVuRGVwZW5kZW5jaWVzID4gMCkge1xuICAgICAgICByZXR1cm47XG4gICAgICB9XG4gICAgICBmdW5jdGlvbiBkb1J1bigpIHtcbiAgICAgICAgaWYgKGNhbGxlZFJ1bikgcmV0dXJuO1xuICAgICAgICBjYWxsZWRSdW4gPSB0cnVlO1xuICAgICAgICBNb2R1bGVbXCJjYWxsZWRSdW5cIl0gPSB0cnVlO1xuICAgICAgICBpZiAoQUJPUlQpIHJldHVybjtcbiAgICAgICAgaW5pdFJ1bnRpbWUoKTtcbiAgICAgICAgcmVhZHlQcm9taXNlUmVzb2x2ZShNb2R1bGUpO1xuICAgICAgICBpZiAoTW9kdWxlW1wib25SdW50aW1lSW5pdGlhbGl6ZWRcIl0pIE1vZHVsZVtcIm9uUnVudGltZUluaXRpYWxpemVkXCJdKCk7XG4gICAgICAgIHBvc3RSdW4oKTtcbiAgICAgIH1cbiAgICAgIGlmIChNb2R1bGVbXCJzZXRTdGF0dXNcIl0pIHtcbiAgICAgICAgTW9kdWxlW1wic2V0U3RhdHVzXCJdKFwiUnVubmluZy4uLlwiKTtcbiAgICAgICAgc2V0VGltZW91dChmdW5jdGlvbiAoKSB7XG4gICAgICAgICAgc2V0VGltZW91dChmdW5jdGlvbiAoKSB7XG4gICAgICAgICAgICBNb2R1bGVbXCJzZXRTdGF0dXNcIl0oXCJcIik7XG4gICAgICAgICAgfSwgMSk7XG4gICAgICAgICAgZG9SdW4oKTtcbiAgICAgICAgfSwgMSk7XG4gICAgICB9IGVsc2Uge1xuICAgICAgICBkb1J1bigpO1xuICAgICAgfVxuICAgIH1cbiAgICBpZiAoTW9kdWxlW1wicHJlSW5pdFwiXSkge1xuICAgICAgaWYgKHR5cGVvZiBNb2R1bGVbXCJwcmVJbml0XCJdID09IFwiZnVuY3Rpb25cIilcbiAgICAgICAgTW9kdWxlW1wicHJlSW5pdFwiXSA9IFtNb2R1bGVbXCJwcmVJbml0XCJdXTtcbiAgICAgIHdoaWxlIChNb2R1bGVbXCJwcmVJbml0XCJdLmxlbmd0aCA+IDApIHtcbiAgICAgICAgTW9kdWxlW1wicHJlSW5pdFwiXS5wb3AoKSgpO1xuICAgICAgfVxuICAgIH1cbiAgICBydW4oKTtcblxuICAgIHJldHVybiBleHBvcnRDcHBMaWIucmVhZHk7XG4gIH07XG59KSgpO1xuaWYgKHR5cGVvZiBleHBvcnRzID09PSBcIm9iamVjdFwiICYmIHR5cGVvZiBtb2R1bGUgPT09IFwib2JqZWN0XCIpXG4gIG1vZHVsZS5leHBvcnRzID0gZXhwb3J0Q3BwTGliO1xuZWxzZSBpZiAodHlwZW9mIGRlZmluZSA9PT0gXCJmdW5jdGlvblwiICYmIGRlZmluZVtcImFtZFwiXSlcbiAgZGVmaW5lKFtdLCBmdW5jdGlvbiAoKSB7XG4gICAgcmV0dXJuIGV4cG9ydENwcExpYjtcbiAgfSk7XG5lbHNlIGlmICh0eXBlb2YgZXhwb3J0cyA9PT0gXCJvYmplY3RcIikgZXhwb3J0c1tcImV4cG9ydENwcExpYlwiXSA9IGV4cG9ydENwcExpYjtcbiIsIi8vIFRoZSBtb2R1bGUgY2FjaGVcbnZhciBfX3dlYnBhY2tfbW9kdWxlX2NhY2hlX18gPSB7fTtcblxuLy8gVGhlIHJlcXVpcmUgZnVuY3Rpb25cbmZ1bmN0aW9uIF9fd2VicGFja19yZXF1aXJlX18obW9kdWxlSWQpIHtcblx0Ly8gQ2hlY2sgaWYgbW9kdWxlIGlzIGluIGNhY2hlXG5cdHZhciBjYWNoZWRNb2R1bGUgPSBfX3dlYnBhY2tfbW9kdWxlX2NhY2hlX19bbW9kdWxlSWRdO1xuXHRpZiAoY2FjaGVkTW9kdWxlICE9PSB1bmRlZmluZWQpIHtcblx0XHRyZXR1cm4gY2FjaGVkTW9kdWxlLmV4cG9ydHM7XG5cdH1cblx0Ly8gQ3JlYXRlIGEgbmV3IG1vZHVsZSAoYW5kIHB1dCBpdCBpbnRvIHRoZSBjYWNoZSlcblx0dmFyIG1vZHVsZSA9IF9fd2VicGFja19tb2R1bGVfY2FjaGVfX1ttb2R1bGVJZF0gPSB7XG5cdFx0aWQ6IG1vZHVsZUlkLFxuXHRcdGxvYWRlZDogZmFsc2UsXG5cdFx0ZXhwb3J0czoge31cblx0fTtcblxuXHQvLyBFeGVjdXRlIHRoZSBtb2R1bGUgZnVuY3Rpb25cblx0X193ZWJwYWNrX21vZHVsZXNfX1ttb2R1bGVJZF0obW9kdWxlLCBtb2R1bGUuZXhwb3J0cywgX193ZWJwYWNrX3JlcXVpcmVfXyk7XG5cblx0Ly8gRmxhZyB0aGUgbW9kdWxlIGFzIGxvYWRlZFxuXHRtb2R1bGUubG9hZGVkID0gdHJ1ZTtcblxuXHQvLyBSZXR1cm4gdGhlIGV4cG9ydHMgb2YgdGhlIG1vZHVsZVxuXHRyZXR1cm4gbW9kdWxlLmV4cG9ydHM7XG59XG5cbi8vIGV4cG9zZSB0aGUgbW9kdWxlcyBvYmplY3QgKF9fd2VicGFja19tb2R1bGVzX18pXG5fX3dlYnBhY2tfcmVxdWlyZV9fLm0gPSBfX3dlYnBhY2tfbW9kdWxlc19fO1xuXG4iLCJfX3dlYnBhY2tfcmVxdWlyZV9fLmFtZE8gPSB7fTsiLCIvLyBkZWZpbmUgZ2V0dGVyIGZ1bmN0aW9ucyBmb3IgaGFybW9ueSBleHBvcnRzXG5fX3dlYnBhY2tfcmVxdWlyZV9fLmQgPSAoZXhwb3J0cywgZGVmaW5pdGlvbikgPT4ge1xuXHRmb3IodmFyIGtleSBpbiBkZWZpbml0aW9uKSB7XG5cdFx0aWYoX193ZWJwYWNrX3JlcXVpcmVfXy5vKGRlZmluaXRpb24sIGtleSkgJiYgIV9fd2VicGFja19yZXF1aXJlX18ubyhleHBvcnRzLCBrZXkpKSB7XG5cdFx0XHRPYmplY3QuZGVmaW5lUHJvcGVydHkoZXhwb3J0cywga2V5LCB7IGVudW1lcmFibGU6IHRydWUsIGdldDogZGVmaW5pdGlvbltrZXldIH0pO1xuXHRcdH1cblx0fVxufTsiLCJfX3dlYnBhY2tfcmVxdWlyZV9fLmcgPSAoZnVuY3Rpb24oKSB7XG5cdGlmICh0eXBlb2YgZ2xvYmFsVGhpcyA9PT0gJ29iamVjdCcpIHJldHVybiBnbG9iYWxUaGlzO1xuXHR0cnkge1xuXHRcdHJldHVybiB0aGlzIHx8IG5ldyBGdW5jdGlvbigncmV0dXJuIHRoaXMnKSgpO1xuXHR9IGNhdGNoIChlKSB7XG5cdFx0aWYgKHR5cGVvZiB3aW5kb3cgPT09ICdvYmplY3QnKSByZXR1cm4gd2luZG93O1xuXHR9XG59KSgpOyIsIl9fd2VicGFja19yZXF1aXJlX18uaG1kID0gKG1vZHVsZSkgPT4ge1xuXHRtb2R1bGUgPSBPYmplY3QuY3JlYXRlKG1vZHVsZSk7XG5cdGlmICghbW9kdWxlLmNoaWxkcmVuKSBtb2R1bGUuY2hpbGRyZW4gPSBbXTtcblx0T2JqZWN0LmRlZmluZVByb3BlcnR5KG1vZHVsZSwgJ2V4cG9ydHMnLCB7XG5cdFx0ZW51bWVyYWJsZTogdHJ1ZSxcblx0XHRzZXQ6ICgpID0+IHtcblx0XHRcdHRocm93IG5ldyBFcnJvcignRVMgTW9kdWxlcyBtYXkgbm90IGFzc2lnbiBtb2R1bGUuZXhwb3J0cyBvciBleHBvcnRzLiosIFVzZSBFU00gZXhwb3J0IHN5bnRheCwgaW5zdGVhZDogJyArIG1vZHVsZS5pZCk7XG5cdFx0fVxuXHR9KTtcblx0cmV0dXJuIG1vZHVsZTtcbn07IiwiX193ZWJwYWNrX3JlcXVpcmVfXy5vID0gKG9iaiwgcHJvcCkgPT4gKE9iamVjdC5wcm90b3R5cGUuaGFzT3duUHJvcGVydHkuY2FsbChvYmosIHByb3ApKSIsInZhciBzY3JpcHRVcmw7XG5pZiAoX193ZWJwYWNrX3JlcXVpcmVfXy5nLmltcG9ydFNjcmlwdHMpIHNjcmlwdFVybCA9IF9fd2VicGFja19yZXF1aXJlX18uZy5sb2NhdGlvbiArIFwiXCI7XG52YXIgZG9jdW1lbnQgPSBfX3dlYnBhY2tfcmVxdWlyZV9fLmcuZG9jdW1lbnQ7XG5pZiAoIXNjcmlwdFVybCAmJiBkb2N1bWVudCkge1xuXHRpZiAoZG9jdW1lbnQuY3VycmVudFNjcmlwdClcblx0XHRzY3JpcHRVcmwgPSBkb2N1bWVudC5jdXJyZW50U2NyaXB0LnNyYztcblx0aWYgKCFzY3JpcHRVcmwpIHtcblx0XHR2YXIgc2NyaXB0cyA9IGRvY3VtZW50LmdldEVsZW1lbnRzQnlUYWdOYW1lKFwic2NyaXB0XCIpO1xuXHRcdGlmKHNjcmlwdHMubGVuZ3RoKSB7XG5cdFx0XHR2YXIgaSA9IHNjcmlwdHMubGVuZ3RoIC0gMTtcblx0XHRcdHdoaWxlIChpID4gLTEgJiYgIXNjcmlwdFVybCkgc2NyaXB0VXJsID0gc2NyaXB0c1tpLS1dLnNyYztcblx0XHR9XG5cdH1cbn1cbi8vIFdoZW4gc3VwcG9ydGluZyBicm93c2VycyB3aGVyZSBhbiBhdXRvbWF0aWMgcHVibGljUGF0aCBpcyBub3Qgc3VwcG9ydGVkIHlvdSBtdXN0IHNwZWNpZnkgYW4gb3V0cHV0LnB1YmxpY1BhdGggbWFudWFsbHkgdmlhIGNvbmZpZ3VyYXRpb25cbi8vIG9yIHBhc3MgYW4gZW1wdHkgc3RyaW5nIChcIlwiKSBhbmQgc2V0IHRoZSBfX3dlYnBhY2tfcHVibGljX3BhdGhfXyB2YXJpYWJsZSBmcm9tIHlvdXIgY29kZSB0byB1c2UgeW91ciBvd24gbG9naWMuXG5pZiAoIXNjcmlwdFVybCkgdGhyb3cgbmV3IEVycm9yKFwiQXV0b21hdGljIHB1YmxpY1BhdGggaXMgbm90IHN1cHBvcnRlZCBpbiB0aGlzIGJyb3dzZXJcIik7XG5zY3JpcHRVcmwgPSBzY3JpcHRVcmwucmVwbGFjZSgvIy4qJC8sIFwiXCIpLnJlcGxhY2UoL1xcPy4qJC8sIFwiXCIpLnJlcGxhY2UoL1xcL1teXFwvXSskLywgXCIvXCIpO1xuX193ZWJwYWNrX3JlcXVpcmVfXy5wID0gc2NyaXB0VXJsOyIsIl9fd2VicGFja19yZXF1aXJlX18uYiA9IHNlbGYubG9jYXRpb24gKyBcIlwiO1xuXG4vLyBvYmplY3QgdG8gc3RvcmUgbG9hZGVkIGNodW5rc1xuLy8gXCIxXCIgbWVhbnMgXCJhbHJlYWR5IGxvYWRlZFwiXG52YXIgaW5zdGFsbGVkQ2h1bmtzID0ge1xuXHQzNTY6IDFcbn07XG5cbi8vIG5vIGNodW5rIGluc3RhbGwgZnVuY3Rpb24gbmVlZGVkXG4vLyBubyBjaHVuayBsb2FkaW5nXG5cbi8vIG5vIEhNUlxuXG4vLyBubyBITVIgbWFuaWZlc3QiLCJpbXBvcnQgeyBnZXRDbHVzdGVyc0Zyb21EaXN0TWF0V2FzbSB9IGZyb20gJy4vY2x1c3Rlcml6ZXJXYXNtJztcbm9ubWVzc2FnZSA9IChldmVudCkgPT4ge1xuICAgIGNvbnN0IHsgZGlzdE1hdEFycmF5LCBuLCBtZXRob2RDb2RlIH0gPSBldmVudC5kYXRhO1xuICAgIGNvbnN0IGRhdGEgPSB7fTtcbiAgICB0cnkge1xuICAgICAgICBnZXRDbHVzdGVyc0Zyb21EaXN0TWF0V2FzbShkaXN0TWF0QXJyYXksIG4sIG1ldGhvZENvZGUpXG4gICAgICAgICAgICAudGhlbigoY2x1c3Rlck1hdHJpeCkgPT4ge1xuICAgICAgICAgICAgZGF0YS5jbHVzdGVyTWF0cml4ID0gY2x1c3Rlck1hdHJpeDtcbiAgICAgICAgICAgIHBvc3RNZXNzYWdlKGRhdGEpO1xuICAgICAgICB9KTtcbiAgICB9XG4gICAgY2F0Y2ggKGUpIHtcbiAgICAgICAgZGF0YS5lcnJvciA9IGU7XG4gICAgICAgIHBvc3RNZXNzYWdlKGRhdGEpO1xuICAgIH1cbn07XG4vLyMgc291cmNlTWFwcGluZ1VSTD1jbHVzdGVyaW5nLXdvcmtlci5qcy5tYXAiLCJpbXBvcnQge2V4cG9ydENwcExpYn0gZnJvbSAnLi93YXNtQ2x1c3Rlci5qcyc7XG5cbi8qKlxuIGNhbGxzIHdhc20gZnVuY3Rpb24gdG8gZ2V0IGNsdXN0ZXJpbmcgbWVyZ2VzIGFuZCBoZWlnaHRzIGZyb20gZGlzdGFuY2UgbWF0cml4XG4gZGlzdG1hdDogZGlzdGFuY2UgbWF0cml4IGFzIGFuIGFycmF5IG9mIGZsb2F0cyBjb21wcmlzaW5nIHRoZSB0b3AgcmlnaHQgdHJpYW5nbGUgb2YgdGhlIG1hdHJpeFxuIG46IG51bWJlciBvZiBvYnNlcnZhYmxlc1xuIG1ldGhvZDogMCA9IHNpbmdsZSBsaW5rYWdlLCAxID0gY29tcGxldGUgbGlua2FnZSwgMiA9IGF2ZXJhZ2UgbGlua2FnZSwgMyA9IG1lZGlhbiBsaW5rYWdlXG4gcmVzdWx0OiB7IG1lcmdlUmVzdWx0OiBJbnQzMkFycmF5LCBoZWlnaHRzUmVzdWx0OiBGbG9hdDMyQXJyYXkgfVxuIG1lcmdlUmVzdWx0IGhhcyBsZW5ndGggb2YgKG4tMSkqMiBhbmQgaGVpZ2h0UmVzdWx0IGhhcyBsZW5ndGggb2Ygbi0xXG4gdG9nZXRoZXIgdGhleSBkZXNjcmliZSB0aGUgY2x1c3RlcmluZyBhcyBhIGRlbmRyb2dyYW0gYXMgYSBtYXRyaXggb2YgKG4tMSkgWCAzXG4gZWFjaCByb3cgaW4gdGhlIGdpdmVuIG1hdHJpeCBjb21wcmlzZXMgdGhlIG1lcmdlIGV2ZW50IGF0IHN0ZXAgaSBhbmQgbGFzdCBjb2x1bW4gaXMgdGhlIGhlaWdodCBmcm9tIHRoZSBsZWF2ZXMuXG4qL1xuZXhwb3J0IGFzeW5jIGZ1bmN0aW9uIGdldENsdXN0ZXJzRnJvbURpc3RNYXRXYXNtKGRpc3RtYXQsIG4sIG1ldGhvZCkge1xuICBjb25zdCB3YXNtVXJsID0gbmV3IFVSTCgnLi93YXNtQ2x1c3Rlci53YXNtJywgaW1wb3J0Lm1ldGEudXJsKS5ocmVmO1xuICBjb25zdCB3YXNtUGF0aCA9IHdhc21Vcmwuc3Vic3RyaW5nKDAsIHdhc21VcmwubGFzdEluZGV4T2YoJy8nKSArIDEpICsgJ3dhc21DbHVzdGVyLndhc20nO1xuICBsZXQgd2FzbUluc3RhbmNlO1xuICB0cnkge1xuICAgICAgd2FzbUluc3RhbmNlID0gYXdhaXQgZXhwb3J0Q3BwTGliKHtsb2NhdGVGaWxlOiAoKSA9PiB3YXNtUGF0aCwgcHJpbnRFcnI6IChfKSA9PiB7fX0pO1xuICB9IGNhdGNoIChlKSB7XG4gICAgICB0cnkge1xuICAgICAgICAgIHdhc21JbnN0YW5jZSA9IGF3YWl0IGV4cG9ydENwcExpYih7bG9jYXRlRmlsZTogKCkgPT4gd2FzbVVybCwgcHJpbnRFcnI6IChfKSA9PiB7fX0pO1xuICAgICAgfVxuICAgICAgY2F0Y2ggKGUpIHtcbiAgICAgICAgICBjb25zb2xlLmVycm9yKGUpO1xuICAgICAgICAgIHRocm93IG5ldyBFcnJvcignVW5hYmxlIHRvIGxvYWQgd2FzbSBmaWxlIGZvciBoaWVyYXJjaGljYWwgY2x1c3RlcmluZycpO1xuICAgICAgfVxuICB9XG5cbiAgY29uc3QgZ2V0RGVuZHJvZ3JhbVdhc20gPVxuICAgIHdhc21JbnN0YW5jZS5jd3JhcCgnZ2V0RGVuZHJvZ3JhbScsICdudWxsJywgWydudW1iZXInLCAnbnVtYmVyJywgJ251bWJlcicsICdudW1iZXInLCAnbnVtYmVyJ10pO1xuICAvLyBhbGxvY2F0ZSBhIG1lbW9yeSBibG9jayBvbiB0aGUgd2FzbSBoZWFwIGZvciB0aGUgZGlzdGFuY2UgbWF0cml4XG4gIGNvbnN0IGJ5dGVzRm9yRGlzdE1hdCA9IEZsb2F0MzJBcnJheS5CWVRFU19QRVJfRUxFTUVOVCAqIGRpc3RtYXQubGVuZ3RoO1xuICBjb25zdCBkYXRhUHRyID0gd2FzbUluc3RhbmNlLl9tYWxsb2MoYnl0ZXNGb3JEaXN0TWF0KTtcbiAgY29uc3QgbWF0SGVhcCA9IG5ldyBVaW50OEFycmF5KHdhc21JbnN0YW5jZS5IRUFQVTguYnVmZmVyLCBkYXRhUHRyLCBieXRlc0ZvckRpc3RNYXQpO1xuICBtYXRIZWFwLnNldChuZXcgVWludDhBcnJheShkaXN0bWF0LmJ1ZmZlcikpO1xuXG4gIC8vYWxsb2NhdGUgYSBtZW1vcnkgYmxvY2sgb24gdGhlIHdhc20gaGVhcCBmb3IgdGhlIG1lcmdlcyBhcnJheVxuICBjb25zdCBieXRlc0Zvck1lcmdlQXJyYXkgPSBJbnQzMkFycmF5LkJZVEVTX1BFUl9FTEVNRU5UICogKG4gLSAxKSAqIDI7XG4gIGNvbnN0IG1lcmdlUHRyID0gd2FzbUluc3RhbmNlLl9tYWxsb2MoYnl0ZXNGb3JNZXJnZUFycmF5KTtcbiAgY29uc3QgbWVyZ2VIZWFwID0gbmV3IFVpbnQ4QXJyYXkod2FzbUluc3RhbmNlLkhFQVBVOC5idWZmZXIsIG1lcmdlUHRyLCBieXRlc0Zvck1lcmdlQXJyYXkpO1xuXG4gIC8vYWxsb2NhdGUgYSBtZW1vcnkgYmxvY2sgb24gdGhlIHdhc20gaGVhcCBmb3IgdGhlIGhlaWd0IGFycmF5XG4gIGNvbnN0IGJ5dGVzRm9ySGVpZ2h0c0FycmF5ID0gRmxvYXQzMkFycmF5LkJZVEVTX1BFUl9FTEVNRU5UICogKG4gLSAxKTtcbiAgY29uc3QgaGVpZ2h0c1B0ciA9IHdhc21JbnN0YW5jZS5fbWFsbG9jKGJ5dGVzRm9ySGVpZ2h0c0FycmF5KTtcbiAgY29uc3QgaGVpZ2h0c0hlYXAgPSBuZXcgVWludDhBcnJheSh3YXNtSW5zdGFuY2UuSEVBUFU4LmJ1ZmZlciwgaGVpZ2h0c1B0ciwgYnl0ZXNGb3JIZWlnaHRzQXJyYXkpO1xuXG4gIC8vIGNhbGwgdGhlIHdhc20gZnVuY3Rpb25cbiAgZ2V0RGVuZHJvZ3JhbVdhc20oZGF0YVB0ciwgbiwgbWV0aG9kLCBtZXJnZVB0ciwgaGVpZ2h0c1B0cik7XG4gIC8vIGdldCB0aGUgbWVyZ2VzIGFuZCBoZWlnaHRzIGZyb20gdGhlIHdhc20gaGVhcFxuICBjb25zdCBtZXJnZVJlc3VsdCA9IG5ldyBJbnQzMkFycmF5KG1lcmdlSGVhcC5idWZmZXIsIG1lcmdlSGVhcC5ieXRlT2Zmc2V0LCAobi0xKSAqIDIpO1xuICBjb25zdCBoZWlnaHRzUmVzdWx0ID0gKG5ldyBGbG9hdDMyQXJyYXkoaGVpZ2h0c0hlYXAuYnVmZmVyLCBoZWlnaHRzSGVhcC5ieXRlT2Zmc2V0LCBuLTEpKS5zbGljZSgwLCBuLTEpO1xuXG4gIGNvbnN0IG1lcmdlUm93MSA9IG1lcmdlUmVzdWx0LnNsaWNlKDAsIG4tMSk7XG4gIGNvbnN0IG1lcmdlUm93MiA9IG1lcmdlUmVzdWx0LnNsaWNlKG4tMSwgMipuIC0gMik7XG4gIC8vIGZyZWUgdGhlIG1lbW9yeSBibG9ja3Mgb24gdGhlIHdhc20gaGVhcFxuICB3YXNtSW5zdGFuY2UuX2ZyZWUobWF0SGVhcC5ieXRlT2Zmc2V0KTtcbiAgd2FzbUluc3RhbmNlLl9mcmVlKG1lcmdlSGVhcC5ieXRlT2Zmc2V0KTtcbiAgd2FzbUluc3RhbmNlLl9mcmVlKGhlaWdodHNIZWFwLmJ5dGVPZmZzZXQpO1xuICByZXR1cm4ge21lcmdlUm93MSwgbWVyZ2VSb3cyLCBoZWlnaHRzUmVzdWx0fTtcbn1cbiJdLCJuYW1lcyI6WyJfc2NyaXB0RGlyIiwiZXhwb3J0Q3BwTGliIiwiZG9jdW1lbnQiLCJjdXJyZW50U2NyaXB0Iiwic3JjIiwidW5kZWZpbmVkIiwicmVhZHlQcm9taXNlUmVzb2x2ZSIsInJlYWR5UHJvbWlzZVJlamVjdCIsIk1vZHVsZSIsIlByb21pc2UiLCJyZXNvbHZlIiwicmVqZWN0IiwicmVhZEJpbmFyeSIsIm1vZHVsZU92ZXJyaWRlcyIsIk9iamVjdCIsImFzc2lnbiIsIkVOVklST05NRU5UX0lTX1dFQiIsIndpbmRvdyIsIkVOVklST05NRU5UX0lTX1dPUktFUiIsImltcG9ydFNjcmlwdHMiLCJzY3JpcHREaXJlY3RvcnkiLCJwcm9jZXNzIiwidmVyc2lvbnMiLCJub2RlIiwic2VsZiIsImxvY2F0aW9uIiwiaHJlZiIsImluZGV4T2YiLCJzdWJzdHIiLCJyZXBsYWNlIiwibGFzdEluZGV4T2YiLCJ1cmwiLCJ4aHIiLCJYTUxIdHRwUmVxdWVzdCIsIm9wZW4iLCJyZXNwb25zZVR5cGUiLCJzZW5kIiwiVWludDhBcnJheSIsInJlc3BvbnNlIiwiY29uc29sZSIsImxvZyIsImJpbmQiLCJ3YXNtQmluYXJ5Iiwid2FzbU1lbW9yeSIsImVyciIsIndhcm4iLCJXZWJBc3NlbWJseSIsImFib3J0IiwiSEVBUDgiLCJIRUFQVTgiLCJIRUFQVTMyIiwiQUJPUlQiLCJ1cGRhdGVNZW1vcnlWaWV3cyIsImIiLCJidWZmZXIiLCJJbnQ4QXJyYXkiLCJJbnQxNkFycmF5IiwiSW50MzJBcnJheSIsIlVpbnQxNkFycmF5IiwiVWludDMyQXJyYXkiLCJGbG9hdDMyQXJyYXkiLCJGbG9hdDY0QXJyYXkiLCJfX0FUUFJFUlVOX18iLCJfX0FUSU5JVF9fIiwiX19BVFBPU1RSVU5fXyIsInJ1bkRlcGVuZGVuY2llcyIsInJ1bkRlcGVuZGVuY3lXYXRjaGVyIiwiZGVwZW5kZW5jaWVzRnVsZmlsbGVkIiwid2hhdCIsImUiLCJSdW50aW1lRXJyb3IiLCJ3YXNtQmluYXJ5RmlsZSIsInBhdGgiLCJpc0RhdGFVUkkiLCJmaWxlbmFtZSIsInN0YXJ0c1dpdGgiLCJnZXRCaW5hcnkiLCJmaWxlIiwiaW5zdGFudGlhdGVBcnJheUJ1ZmZlciIsImJpbmFyeUZpbGUiLCJpbXBvcnRzIiwicmVjZWl2ZXIiLCJmZXRjaCIsInRoZW4iLCJjcmVkZW50aWFscyIsImNhdGNoIiwiZ2V0QmluYXJ5UHJvbWlzZSIsImJpbmFyeSIsImluc3RhbnRpYXRlIiwiaW5zdGFuY2UiLCJyZWFzb24iLCJjYWxsUnVudGltZUNhbGxiYWNrcyIsImNhbGxiYWNrcyIsImxlbmd0aCIsInNoaWZ0IiwiRXhjZXB0aW9uSW5mbyIsImV4Y1B0ciIsInRoaXMiLCJwdHIiLCJzZXRfdHlwZSIsInR5cGUiLCJnZXRfdHlwZSIsInNldF9kZXN0cnVjdG9yIiwiZGVzdHJ1Y3RvciIsImdldF9kZXN0cnVjdG9yIiwic2V0X2NhdWdodCIsImNhdWdodCIsImdldF9jYXVnaHQiLCJzZXRfcmV0aHJvd24iLCJyZXRocm93biIsImdldF9yZXRocm93biIsImluaXQiLCJzZXRfYWRqdXN0ZWRfcHRyIiwiYWRqdXN0ZWRQdHIiLCJnZXRfYWRqdXN0ZWRfcHRyIiwiZ2V0X2V4Y2VwdGlvbl9wdHIiLCJfX19jeGFfaXNfcG9pbnRlcl90eXBlIiwiYWRqdXN0ZWQiLCJlbXNjcmlwdGVuX3JlYWxsb2NfYnVmZmVyIiwic2l6ZSIsImdyb3ciLCJieXRlTGVuZ3RoIiwiZ2V0Q0Z1bmMiLCJpZGVudCIsIlVURjhEZWNvZGVyIiwiVGV4dERlY29kZXIiLCJjY2FsbCIsInJldHVyblR5cGUiLCJhcmdUeXBlcyIsImFyZ3MiLCJvcHRzIiwidG9DIiwic3RyaW5nIiwic3RyIiwicmV0IiwibGVuIiwiaSIsImMiLCJjaGFyQ29kZUF0IiwibGVuZ3RoQnl0ZXNVVEY4Iiwic3RhY2tBbGxvYyIsIm91dFB0ciIsIm1heEJ5dGVzVG9Xcml0ZSIsImhlYXAiLCJvdXRJZHgiLCJlbmRJZHgiLCJ1Iiwic3RyaW5nVG9VVEY4QXJyYXkiLCJzdHJpbmdUb1VURjgiLCJzdHJpbmdUb1VURjhPblN0YWNrIiwiYXJyYXkiLCJhcnIiLCJzZXQiLCJmdW5jIiwiY0FyZ3MiLCJzdGFjayIsImNvbnZlcnRlciIsInN0YWNrU2F2ZSIsImFwcGx5Iiwic3RhY2tSZXN0b3JlIiwiaGVhcE9yQXJyYXkiLCJpZHgiLCJtYXhCeXRlc1RvUmVhZCIsImVuZFB0ciIsImRlY29kZSIsInN1YmFycmF5IiwidTAiLCJ1MSIsInUyIiwiU3RyaW5nIiwiZnJvbUNoYXJDb2RlIiwiY2giLCJVVEY4QXJyYXlUb1N0cmluZyIsIkJvb2xlYW4iLCJjb252ZXJ0UmV0dXJuVmFsdWUiLCJvbkRvbmUiLCJjYWxsZWRSdW4iLCJ3YXNtSW1wb3J0cyIsImQiLCJhIiwiZGVzdCIsIm51bSIsImNvcHlXaXRoaW4iLCJyZXF1ZXN0ZWRTaXplIiwieCIsIm9sZFNpemUiLCJtYXhIZWFwU2l6ZSIsImN1dERvd24iLCJvdmVyR3Jvd25IZWFwU2l6ZSIsIk1hdGgiLCJtaW4iLCJtYXgiLCJjYWxsYmFjayIsImluZm8iLCJyZWNlaXZlSW5zdGFuY2UiLCJtb2R1bGUiLCJjYiIsImV4cG9ydHMiLCJ1bnNoaWZ0IiwiaWQiLCJjbGVhckludGVydmFsIiwicmVtb3ZlUnVuRGVwZW5kZW5jeSIsInJlc3VsdCIsImluc3RhbnRpYXRlU3RyZWFtaW5nIiwiY3JlYXRlV2FzbSIsImFyZ3VtZW50cyIsInJ1biIsImRvUnVuIiwicG9zdFJ1biIsInByZVJ1biIsInNldFRpbWVvdXQiLCJudW1lcmljQXJncyIsImV2ZXJ5IiwicnVuQ2FsbGVyIiwicG9wIiwicmVhZHkiLCJkZWZpbmUiLCJfX3dlYnBhY2tfbW9kdWxlX2NhY2hlX18iLCJfX3dlYnBhY2tfcmVxdWlyZV9fIiwibW9kdWxlSWQiLCJjYWNoZWRNb2R1bGUiLCJsb2FkZWQiLCJfX3dlYnBhY2tfbW9kdWxlc19fIiwibSIsImFtZE8iLCJkZWZpbml0aW9uIiwia2V5IiwibyIsImRlZmluZVByb3BlcnR5IiwiZW51bWVyYWJsZSIsImdldCIsImciLCJnbG9iYWxUaGlzIiwiRnVuY3Rpb24iLCJobWQiLCJjcmVhdGUiLCJjaGlsZHJlbiIsIkVycm9yIiwib2JqIiwicHJvcCIsInByb3RvdHlwZSIsImhhc093blByb3BlcnR5IiwiY2FsbCIsInNjcmlwdFVybCIsInNjcmlwdHMiLCJnZXRFbGVtZW50c0J5VGFnTmFtZSIsInAiLCJvbm1lc3NhZ2UiLCJldmVudCIsImRpc3RNYXRBcnJheSIsIm4iLCJtZXRob2RDb2RlIiwiZGF0YSIsImFzeW5jIiwiZGlzdG1hdCIsIm1ldGhvZCIsIndhc21VcmwiLCJVUkwiLCJ3YXNtUGF0aCIsInN1YnN0cmluZyIsIndhc21JbnN0YW5jZSIsImxvY2F0ZUZpbGUiLCJwcmludEVyciIsIl8iLCJlcnJvciIsImdldERlbmRyb2dyYW1XYXNtIiwiY3dyYXAiLCJieXRlc0ZvckRpc3RNYXQiLCJCWVRFU19QRVJfRUxFTUVOVCIsImRhdGFQdHIiLCJfbWFsbG9jIiwibWF0SGVhcCIsImJ5dGVzRm9yTWVyZ2VBcnJheSIsIm1lcmdlUHRyIiwibWVyZ2VIZWFwIiwiYnl0ZXNGb3JIZWlnaHRzQXJyYXkiLCJoZWlnaHRzUHRyIiwiaGVpZ2h0c0hlYXAiLCJtZXJnZVJlc3VsdCIsImJ5dGVPZmZzZXQiLCJoZWlnaHRzUmVzdWx0Iiwic2xpY2UiLCJtZXJnZVJvdzEiLCJtZXJnZVJvdzIiLCJfZnJlZSIsImdldENsdXN0ZXJzRnJvbURpc3RNYXRXYXNtIiwiY2x1c3Rlck1hdHJpeCIsInBvc3RNZXNzYWdlIl0sInNvdXJjZVJvb3QiOiIifQ==
|