israeli-bank-scrapers 5.2.1 → 5.2.3
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.
|
@@ -213,7 +213,11 @@ async function getAccountTransactions(page) {
|
|
|
213
213
|
return txns;
|
|
214
214
|
}
|
|
215
215
|
async function getCurrentBalance(page) {
|
|
216
|
-
const
|
|
216
|
+
const balanceElement = await page.$(CURRENT_BALANCE);
|
|
217
|
+
if (!balanceElement) {
|
|
218
|
+
return undefined;
|
|
219
|
+
}
|
|
220
|
+
const balanceStr = await balanceElement.evaluate(option => {
|
|
217
221
|
return option.innerText;
|
|
218
222
|
});
|
|
219
223
|
return getAmountData(balanceStr);
|
|
@@ -291,4 +295,4 @@ class BeinleumiGroupBaseScraper extends _baseScraperWithBrowser.BaseScraperWithB
|
|
|
291
295
|
}
|
|
292
296
|
}
|
|
293
297
|
var _default = exports.default = BeinleumiGroupBaseScraper;
|
|
294
|
-
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJfbW9tZW50IiwiX2ludGVyb3BSZXF1aXJlRGVmYXVsdCIsInJlcXVpcmUiLCJfY29uc3RhbnRzIiwiX2VsZW1lbnRzSW50ZXJhY3Rpb25zIiwiX25hdmlnYXRpb24iLCJfd2FpdGluZyIsIl90cmFuc2FjdGlvbnMiLCJfYmFzZVNjcmFwZXJXaXRoQnJvd3NlciIsImUiLCJfX2VzTW9kdWxlIiwiZGVmYXVsdCIsIl9kZWZpbmVQcm9wZXJ0eSIsInIiLCJ0IiwiX3RvUHJvcGVydHlLZXkiLCJPYmplY3QiLCJkZWZpbmVQcm9wZXJ0eSIsInZhbHVlIiwiZW51bWVyYWJsZSIsImNvbmZpZ3VyYWJsZSIsIndyaXRhYmxlIiwiaSIsIl90b1ByaW1pdGl2ZSIsIlN5bWJvbCIsInRvUHJpbWl0aXZlIiwiY2FsbCIsIlR5cGVFcnJvciIsIlN0cmluZyIsIk51bWJlciIsIkRBVEVfRk9STUFUIiwiTk9fVFJBTlNBQ1RJT05fSU5fREFURV9SQU5HRV9URVhUIiwiREFURV9DT0xVTU5fQ0xBU1NfQ09NUExFVEVEIiwiREFURV9DT0xVTU5fQ0xBU1NfUEVORElORyIsIkRFU0NSSVBUSU9OX0NPTFVNTl9DTEFTU19DT01QTEVURUQiLCJERVNDUklQVElPTl9DT0xVTU5fQ0xBU1NfUEVORElORyIsIlJFRkVSRU5DRV9DT0xVTU5fQ0xBU1MiLCJERUJJVF9DT0xVTU5fQ0xBU1MiLCJDUkVESVRfQ09MVU1OX0NMQVNTIiwiRVJST1JfTUVTU0FHRV9DTEFTUyIsIkFDQ09VTlRTX05VTUJFUiIsIkNMT1NFX1NFQVJDSF9CWV9EQVRFU19CVVRUT05fQ0xBU1MiLCJTSE9XX1NFQVJDSF9CWV9EQVRFU19CVVRUT05fVkFMVUUiLCJDT01QTEVURURfVFJBTlNBQ1RJT05TX1RBQkxFIiwiUEVORElOR19UUkFOU0FDVElPTlNfVEFCTEUiLCJORVhUX1BBR0VfTElOSyIsIkNVUlJFTlRfQkFMQU5DRSIsImdldFBvc3NpYmxlTG9naW5SZXN1bHRzIiwidXJscyIsIkxvZ2luUmVzdWx0cyIsIlN1Y2Nlc3MiLCJJbnZhbGlkUGFzc3dvcmQiLCJjcmVhdGVMb2dpbkZpZWxkcyIsImNyZWRlbnRpYWxzIiwic2VsZWN0b3IiLCJ1c2VybmFtZSIsInBhc3N3b3JkIiwiZ2V0QW1vdW50RGF0YSIsImFtb3VudFN0ciIsImFtb3VudFN0ckNvcHkiLCJyZXBsYWNlIiwiU0hFS0VMX0NVUlJFTkNZX1NZTUJPTCIsInJlcGxhY2VBbGwiLCJwYXJzZUZsb2F0IiwiZ2V0VHhuQW1vdW50IiwidHhuIiwiY3JlZGl0IiwiZGViaXQiLCJpc05hTiIsImNvbnZlcnRUcmFuc2FjdGlvbnMiLCJ0eG5zIiwibWFwIiwiY29udmVydGVkRGF0ZSIsIm1vbWVudCIsImRhdGUiLCJ0b0lTT1N0cmluZyIsImNvbnZlcnRlZEFtb3VudCIsInR5cGUiLCJUcmFuc2FjdGlvblR5cGVzIiwiTm9ybWFsIiwiaWRlbnRpZmllciIsInJlZmVyZW5jZSIsInBhcnNlSW50IiwidW5kZWZpbmVkIiwicHJvY2Vzc2VkRGF0ZSIsIm9yaWdpbmFsQW1vdW50Iiwib3JpZ2luYWxDdXJyZW5jeSIsIlNIRUtFTF9DVVJSRU5DWSIsImNoYXJnZWRBbW91bnQiLCJzdGF0dXMiLCJkZXNjcmlwdGlvbiIsIm1lbW8iLCJnZXRUcmFuc2FjdGlvbkRhdGUiLCJ0ZHMiLCJ0cmFuc2FjdGlvblR5cGUiLCJ0cmFuc2FjdGlvbnNDb2xzVHlwZXMiLCJ0cmltIiwiZ2V0VHJhbnNhY3Rpb25EZXNjcmlwdGlvbiIsImdldFRyYW5zYWN0aW9uUmVmZXJlbmNlIiwiZ2V0VHJhbnNhY3Rpb25EZWJpdCIsImdldFRyYW5zYWN0aW9uQ3JlZGl0IiwiZXh0cmFjdFRyYW5zYWN0aW9uRGV0YWlscyIsInR4blJvdyIsInRyYW5zYWN0aW9uU3RhdHVzIiwiaW5uZXJUZHMiLCJpdGVtIiwiZ2V0VHJhbnNhY3Rpb25zQ29sc1R5cGVDbGFzc2VzIiwicGFnZSIsInRhYmxlTG9jYXRvciIsInJlc3VsdCIsInR5cGVDbGFzc2VzT2JqcyIsInBhZ2VFdmFsQWxsIiwidGQiLCJpbmRleCIsImNvbENsYXNzIiwiZ2V0QXR0cmlidXRlIiwidHlwZUNsYXNzT2JqIiwiZXh0cmFjdFRyYW5zYWN0aW9uIiwicHVzaCIsImV4dHJhY3RUcmFuc2FjdGlvbnMiLCJ0cmFuc2FjdGlvbnNSb3dzIiwidHJzIiwidHIiLCJBcnJheSIsImZyb20iLCJnZXRFbGVtZW50c0J5VGFnTmFtZSIsImlubmVyVGV4dCIsImlzTm9UcmFuc2FjdGlvbkluRGF0ZVJhbmdlRXJyb3IiLCJoYXNFcnJvckluZm9FbGVtZW50IiwiZWxlbWVudFByZXNlbnRPblBhZ2UiLCJlcnJvclRleHQiLCIkZXZhbCIsImVycm9yRWxlbWVudCIsInNlYXJjaEJ5RGF0ZXMiLCJzdGFydERhdGUiLCJjbGlja0J1dHRvbiIsIndhaXRVbnRpbEVsZW1lbnRGb3VuZCIsImZpbGxJbnB1dCIsImZvcm1hdCIsIndhaXRGb3JOYXZpZ2F0aW9uIiwiZ2V0QWNjb3VudE51bWJlciIsInNlbGVjdGVkU25pZkFjY291bnQiLCJvcHRpb24iLCJjaGVja0lmSGFzTmV4dFBhZ2UiLCJuYXZpZ2F0ZVRvTmV4dFBhZ2UiLCJzY3JhcGVUcmFuc2FjdGlvbnMiLCJuZWVkVG9QYWdpbmF0ZSIsImhhc05leHRQYWdlIiwiY3VycmVudFBhZ2VUeG5zIiwiZ2V0QWNjb3VudFRyYW5zYWN0aW9ucyIsIlByb21pc2UiLCJyYWNlIiwibm9UcmFuc2FjdGlvbkluUmFuZ2VFcnJvciIsInBlbmRpbmdUeG5zIiwiVHJhbnNhY3Rpb25TdGF0dXNlcyIsIlBlbmRpbmciLCJjb21wbGV0ZWRUeG5zIiwiQ29tcGxldGVkIiwiZ2V0Q3VycmVudEJhbGFuY2UiLCJiYWxhbmNlU3RyIiwid2FpdEZvclBvc3RMb2dpbiIsImZldGNoQWNjb3VudERhdGEiLCJhY2NvdW50TnVtYmVyIiwiYmFsYW5jZSIsImdldEFjY291bnRJZHNCeVNlbGVjdG9yIiwiYWNjb3VudHNJZHMiLCJldmFsdWF0ZSIsInNlbGVjdEVsZW1lbnQiLCJkb2N1bWVudCIsImdldEVsZW1lbnRCeUlkIiwib3B0aW9ucyIsInF1ZXJ5U2VsZWN0b3JBbGwiLCJmZXRjaEFjY291bnRzIiwiYWNjb3VudHMiLCJsZW5ndGgiLCJhY2NvdW50RGF0YSIsImFjY291bnRJZCIsInNlbGVjdCIsIkJlaW5sZXVtaUdyb3VwQmFzZVNjcmFwZXIiLCJCYXNlU2NyYXBlcldpdGhCcm93c2VyIiwiY29uc3RydWN0b3IiLCJhcmdzIiwiZ2V0TG9naW5PcHRpb25zIiwibG9naW5VcmwiLCJMT0dJTl9VUkwiLCJmaWVsZHMiLCJzdWJtaXRCdXR0b25TZWxlY3RvciIsInBvc3RBY3Rpb24iLCJwb3NzaWJsZVJlc3VsdHMiLCJwcmVBY3Rpb24iLCJzbGVlcCIsImZldGNoRGF0YSIsImRlZmF1bHRTdGFydE1vbWVudCIsInN1YnRyYWN0IiwiYWRkIiwidG9EYXRlIiwic3RhcnRNb21lbnQiLCJtYXgiLCJuYXZpZ2F0ZVRvIiwiVFJBTlNBQ1RJT05TX1VSTCIsInN1Y2Nlc3MiLCJfZGVmYXVsdCIsImV4cG9ydHMiXSwic291cmNlcyI6WyIuLi8uLi9zcmMvc2NyYXBlcnMvYmFzZS1iZWlubGV1bWktZ3JvdXAudHMiXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IG1vbWVudCwgeyB0eXBlIE1vbWVudCB9IGZyb20gJ21vbWVudCc7XG5pbXBvcnQgeyB0eXBlIFBhZ2UgfSBmcm9tICdwdXBwZXRlZXInO1xuaW1wb3J0IHsgU0hFS0VMX0NVUlJFTkNZLCBTSEVLRUxfQ1VSUkVOQ1lfU1lNQk9MIH0gZnJvbSAnLi4vY29uc3RhbnRzJztcbmltcG9ydCB7XG4gIGNsaWNrQnV0dG9uLFxuICBlbGVtZW50UHJlc2VudE9uUGFnZSxcbiAgZmlsbElucHV0LFxuICBwYWdlRXZhbEFsbCxcbiAgd2FpdFVudGlsRWxlbWVudEZvdW5kLFxufSBmcm9tICcuLi9oZWxwZXJzL2VsZW1lbnRzLWludGVyYWN0aW9ucyc7XG5pbXBvcnQgeyB3YWl0Rm9yTmF2aWdhdGlvbiB9IGZyb20gJy4uL2hlbHBlcnMvbmF2aWdhdGlvbic7XG5pbXBvcnQgeyBzbGVlcCB9IGZyb20gJy4uL2hlbHBlcnMvd2FpdGluZyc7XG5pbXBvcnQge1xuICBUcmFuc2FjdGlvblN0YXR1c2VzLCBUcmFuc2FjdGlvblR5cGVzLFxuICB0eXBlIFRyYW5zYWN0aW9uLFxuICB0eXBlIFRyYW5zYWN0aW9uc0FjY291bnQsXG59IGZyb20gJy4uL3RyYW5zYWN0aW9ucyc7XG5pbXBvcnQgeyBCYXNlU2NyYXBlcldpdGhCcm93c2VyLCBMb2dpblJlc3VsdHMsIHR5cGUgUG9zc2libGVMb2dpblJlc3VsdHMgfSBmcm9tICcuL2Jhc2Utc2NyYXBlci13aXRoLWJyb3dzZXInO1xuXG5jb25zdCBEQVRFX0ZPUk1BVCA9ICdERC9NTS9ZWVlZJztcbmNvbnN0IE5PX1RSQU5TQUNUSU9OX0lOX0RBVEVfUkFOR0VfVEVYVCA9ICfXnNeQINeg157XpteQ15Ug16DXqteV16DXmdedINeR16DXldep15Ag15TXnteR15XXp9epJztcbmNvbnN0IERBVEVfQ09MVU1OX0NMQVNTX0NPTVBMRVRFRCA9ICdkYXRlIGZpcnN0JztcbmNvbnN0IERBVEVfQ09MVU1OX0NMQVNTX1BFTkRJTkcgPSAnZmlyc3QgZGF0ZSc7XG5jb25zdCBERVNDUklQVElPTl9DT0xVTU5fQ0xBU1NfQ09NUExFVEVEID0gJ3JlZmVyZW5jZSB3cmFwX25vcm1hbCc7XG5jb25zdCBERVNDUklQVElPTl9DT0xVTU5fQ0xBU1NfUEVORElORyA9ICdkZXRhaWxzIHdyYXBfbm9ybWFsJztcbmNvbnN0IFJFRkVSRU5DRV9DT0xVTU5fQ0xBU1MgPSAnZGV0YWlscyc7XG5jb25zdCBERUJJVF9DT0xVTU5fQ0xBU1MgPSAnZGViaXQnO1xuY29uc3QgQ1JFRElUX0NPTFVNTl9DTEFTUyA9ICdjcmVkaXQnOyBcbmNvbnN0IEVSUk9SX01FU1NBR0VfQ0xBU1MgPSAnTk9fREFUQSc7XG5jb25zdCBBQ0NPVU5UU19OVU1CRVIgPSAnZGl2LmZpYmlfYWNjb3VudCBzcGFuLmFjY19udW0nO1xuY29uc3QgQ0xPU0VfU0VBUkNIX0JZX0RBVEVTX0JVVFRPTl9DTEFTUyA9ICd1aS1kYXRlcGlja2VyLWNsb3NlJztcbmNvbnN0IFNIT1dfU0VBUkNIX0JZX0RBVEVTX0JVVFRPTl9WQUxVRSA9ICfXlNem15InO1xuY29uc3QgQ09NUExFVEVEX1RSQU5TQUNUSU9OU19UQUJMRSA9ICd0YWJsZSNkYXRhVGFibGUwNzcnO1xuY29uc3QgUEVORElOR19UUkFOU0FDVElPTlNfVEFCTEUgPSAndGFibGUjZGF0YVRhYmxlMDIzJztcbmNvbnN0IE5FWFRfUEFHRV9MSU5LID0gJ2EjTnBhZ2UucGFnaW5nJztcbmNvbnN0IENVUlJFTlRfQkFMQU5DRSA9ICcubWFpbl9iYWxhbmNlJztcblxudHlwZSBUcmFuc2FjdGlvbnNDb2xzVHlwZXMgPSBSZWNvcmQ8c3RyaW5nLCBudW1iZXI+O1xudHlwZSBUcmFuc2FjdGlvbnNUclRkcyA9IHN0cmluZ1tdO1xudHlwZSBUcmFuc2FjdGlvbnNUciA9IHsgaW5uZXJUZHM6IFRyYW5zYWN0aW9uc1RyVGRzIH07XG5cbmludGVyZmFjZSBTY3JhcGVkVHJhbnNhY3Rpb24ge1xuICByZWZlcmVuY2U6IHN0cmluZztcbiAgZGF0ZTogc3RyaW5nO1xuICBjcmVkaXQ6IHN0cmluZztcbiAgZGViaXQ6IHN0cmluZztcbiAgbWVtbz86IHN0cmluZztcbiAgZGVzY3JpcHRpb246IHN0cmluZztcbiAgc3RhdHVzOiBUcmFuc2FjdGlvblN0YXR1c2VzO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gZ2V0UG9zc2libGVMb2dpblJlc3VsdHMoKTogUG9zc2libGVMb2dpblJlc3VsdHMge1xuICBjb25zdCB1cmxzOiBQb3NzaWJsZUxvZ2luUmVzdWx0cyA9IHt9O1xuICB1cmxzW0xvZ2luUmVzdWx0cy5TdWNjZXNzXSA9IFsvRmliaU1lbnVcXC9PbmxpbmUvXTtcbiAgdXJsc1tMb2dpblJlc3VsdHMuSW52YWxpZFBhc3N3b3JkXSA9IFsvRmliaU1lbnVcXC9NYXJrZXRpbmdcXC9Qcml2YXRlXFwvSG9tZS9dO1xuICByZXR1cm4gdXJscztcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGNyZWF0ZUxvZ2luRmllbGRzKGNyZWRlbnRpYWxzOiBTY3JhcGVyU3BlY2lmaWNDcmVkZW50aWFscykge1xuICByZXR1cm4gW1xuICAgIHsgc2VsZWN0b3I6ICcjdXNlcm5hbWUnLCB2YWx1ZTogY3JlZGVudGlhbHMudXNlcm5hbWUgfSxcbiAgICB7IHNlbGVjdG9yOiAnI3Bhc3N3b3JkJywgdmFsdWU6IGNyZWRlbnRpYWxzLnBhc3N3b3JkIH0sXG4gIF07XG59XG5cbmZ1bmN0aW9uIGdldEFtb3VudERhdGEoYW1vdW50U3RyOiBzdHJpbmcpIHtcbiAgbGV0IGFtb3VudFN0ckNvcHkgPSBhbW91bnRTdHIucmVwbGFjZShTSEVLRUxfQ1VSUkVOQ1lfU1lNQk9MLCAnJyk7XG4gIGFtb3VudFN0ckNvcHkgPSBhbW91bnRTdHJDb3B5LnJlcGxhY2VBbGwoJywnLCAnJyk7XG4gIHJldHVybiBwYXJzZUZsb2F0KGFtb3VudFN0ckNvcHkpO1xufVxuXG5mdW5jdGlvbiBnZXRUeG5BbW91bnQodHhuOiBTY3JhcGVkVHJhbnNhY3Rpb24pIHtcbiAgY29uc3QgY3JlZGl0ID0gZ2V0QW1vdW50RGF0YSh0eG4uY3JlZGl0KTtcbiAgY29uc3QgZGViaXQgPSBnZXRBbW91bnREYXRhKHR4bi5kZWJpdCk7XG4gIHJldHVybiAoTnVtYmVyLmlzTmFOKGNyZWRpdCkgPyAwIDogY3JlZGl0KSAtIChOdW1iZXIuaXNOYU4oZGViaXQpID8gMCA6IGRlYml0KTtcbn1cblxuZnVuY3Rpb24gY29udmVydFRyYW5zYWN0aW9ucyh0eG5zOiBTY3JhcGVkVHJhbnNhY3Rpb25bXSk6IFRyYW5zYWN0aW9uW10ge1xuICByZXR1cm4gdHhucy5tYXAoKHR4bik6IFRyYW5zYWN0aW9uID0+IHtcbiAgICBjb25zdCBjb252ZXJ0ZWREYXRlID0gbW9tZW50KHR4bi5kYXRlLCBEQVRFX0ZPUk1BVCkudG9JU09TdHJpbmcoKTtcbiAgICBjb25zdCBjb252ZXJ0ZWRBbW91bnQgPSBnZXRUeG5BbW91bnQodHhuKTtcbiAgICByZXR1cm4ge1xuICAgICAgdHlwZTogVHJhbnNhY3Rpb25UeXBlcy5Ob3JtYWwsXG4gICAgICBpZGVudGlmaWVyOiB0eG4ucmVmZXJlbmNlID8gcGFyc2VJbnQodHhuLnJlZmVyZW5jZSwgMTApIDogdW5kZWZpbmVkLFxuICAgICAgZGF0ZTogY29udmVydGVkRGF0ZSxcbiAgICAgIHByb2Nlc3NlZERhdGU6IGNvbnZlcnRlZERhdGUsXG4gICAgICBvcmlnaW5hbEFtb3VudDogY29udmVydGVkQW1vdW50LFxuICAgICAgb3JpZ2luYWxDdXJyZW5jeTogU0hFS0VMX0NVUlJFTkNZLFxuICAgICAgY2hhcmdlZEFtb3VudDogY29udmVydGVkQW1vdW50LFxuICAgICAgc3RhdHVzOiB0eG4uc3RhdHVzLFxuICAgICAgZGVzY3JpcHRpb246IHR4bi5kZXNjcmlwdGlvbixcbiAgICAgIG1lbW86IHR4bi5tZW1vLFxuICAgIH07XG4gIH0pO1xufVxuXG5mdW5jdGlvbiBnZXRUcmFuc2FjdGlvbkRhdGUodGRzOiBUcmFuc2FjdGlvbnNUclRkcywgdHJhbnNhY3Rpb25UeXBlOiBzdHJpbmcsIHRyYW5zYWN0aW9uc0NvbHNUeXBlczogVHJhbnNhY3Rpb25zQ29sc1R5cGVzKSB7XG4gIGlmICh0cmFuc2FjdGlvblR5cGUgPT09ICdjb21wbGV0ZWQnKSB7XG4gICAgcmV0dXJuICh0ZHNbdHJhbnNhY3Rpb25zQ29sc1R5cGVzW0RBVEVfQ09MVU1OX0NMQVNTX0NPTVBMRVRFRF1dIHx8ICcnKS50cmltKCk7XG4gIH1cbiAgcmV0dXJuICh0ZHNbdHJhbnNhY3Rpb25zQ29sc1R5cGVzW0RBVEVfQ09MVU1OX0NMQVNTX1BFTkRJTkddXSB8fCAnJykudHJpbSgpO1xufVxuXG5mdW5jdGlvbiBnZXRUcmFuc2FjdGlvbkRlc2NyaXB0aW9uKHRkczogVHJhbnNhY3Rpb25zVHJUZHMsIHRyYW5zYWN0aW9uVHlwZTogc3RyaW5nLCB0cmFuc2FjdGlvbnNDb2xzVHlwZXM6IFRyYW5zYWN0aW9uc0NvbHNUeXBlcykge1xuICBpZiAodHJhbnNhY3Rpb25UeXBlID09PSAnY29tcGxldGVkJykge1xuICAgIHJldHVybiAodGRzW3RyYW5zYWN0aW9uc0NvbHNUeXBlc1tERVNDUklQVElPTl9DT0xVTU5fQ0xBU1NfQ09NUExFVEVEXV0gfHwgJycpLnRyaW0oKTtcbiAgfVxuICByZXR1cm4gKHRkc1t0cmFuc2FjdGlvbnNDb2xzVHlwZXNbREVTQ1JJUFRJT05fQ09MVU1OX0NMQVNTX1BFTkRJTkddXSB8fCAnJykudHJpbSgpO1xufVxuXG5mdW5jdGlvbiBnZXRUcmFuc2FjdGlvblJlZmVyZW5jZSh0ZHM6IFRyYW5zYWN0aW9uc1RyVGRzLCB0cmFuc2FjdGlvbnNDb2xzVHlwZXM6IFRyYW5zYWN0aW9uc0NvbHNUeXBlcykge1xuICByZXR1cm4gKHRkc1t0cmFuc2FjdGlvbnNDb2xzVHlwZXNbUkVGRVJFTkNFX0NPTFVNTl9DTEFTU11dIHx8ICcnKS50cmltKCk7XG59XG5cbmZ1bmN0aW9uIGdldFRyYW5zYWN0aW9uRGViaXQodGRzOiBUcmFuc2FjdGlvbnNUclRkcywgdHJhbnNhY3Rpb25zQ29sc1R5cGVzOiBUcmFuc2FjdGlvbnNDb2xzVHlwZXMpIHtcbiAgcmV0dXJuICh0ZHNbdHJhbnNhY3Rpb25zQ29sc1R5cGVzW0RFQklUX0NPTFVNTl9DTEFTU11dIHx8ICcnKS50cmltKCk7XG59XG5cbmZ1bmN0aW9uIGdldFRyYW5zYWN0aW9uQ3JlZGl0KHRkczogVHJhbnNhY3Rpb25zVHJUZHMsIHRyYW5zYWN0aW9uc0NvbHNUeXBlczogVHJhbnNhY3Rpb25zQ29sc1R5cGVzKSB7XG4gIHJldHVybiAodGRzW3RyYW5zYWN0aW9uc0NvbHNUeXBlc1tDUkVESVRfQ09MVU1OX0NMQVNTXV0gfHwgJycpLnRyaW0oKTtcbn1cblxuZnVuY3Rpb24gZXh0cmFjdFRyYW5zYWN0aW9uRGV0YWlscyh0eG5Sb3c6IFRyYW5zYWN0aW9uc1RyLCB0cmFuc2FjdGlvblN0YXR1czogVHJhbnNhY3Rpb25TdGF0dXNlcywgdHJhbnNhY3Rpb25zQ29sc1R5cGVzOiBUcmFuc2FjdGlvbnNDb2xzVHlwZXMpOiBTY3JhcGVkVHJhbnNhY3Rpb24ge1xuICBjb25zdCB0ZHMgPSB0eG5Sb3cuaW5uZXJUZHM7XG4gIGNvbnN0IGl0ZW0gPSB7XG4gICAgc3RhdHVzOiB0cmFuc2FjdGlvblN0YXR1cyxcbiAgICBkYXRlOiBnZXRUcmFuc2FjdGlvbkRhdGUodGRzLCB0cmFuc2FjdGlvblN0YXR1cywgdHJhbnNhY3Rpb25zQ29sc1R5cGVzKSxcbiAgICBkZXNjcmlwdGlvbjogZ2V0VHJhbnNhY3Rpb25EZXNjcmlwdGlvbih0ZHMsIHRyYW5zYWN0aW9uU3RhdHVzLCB0cmFuc2FjdGlvbnNDb2xzVHlwZXMpLFxuICAgIHJlZmVyZW5jZTogZ2V0VHJhbnNhY3Rpb25SZWZlcmVuY2UodGRzLCB0cmFuc2FjdGlvbnNDb2xzVHlwZXMpLFxuICAgIGRlYml0OiBnZXRUcmFuc2FjdGlvbkRlYml0KHRkcywgdHJhbnNhY3Rpb25zQ29sc1R5cGVzKSxcbiAgICBjcmVkaXQ6IGdldFRyYW5zYWN0aW9uQ3JlZGl0KHRkcywgdHJhbnNhY3Rpb25zQ29sc1R5cGVzKSxcbiAgfTtcblxuICByZXR1cm4gaXRlbTtcbn1cblxuYXN5bmMgZnVuY3Rpb24gZ2V0VHJhbnNhY3Rpb25zQ29sc1R5cGVDbGFzc2VzKHBhZ2U6IFBhZ2UsIHRhYmxlTG9jYXRvcjogc3RyaW5nKTogUHJvbWlzZTxUcmFuc2FjdGlvbnNDb2xzVHlwZXM+IHtcbiAgY29uc3QgcmVzdWx0OiBUcmFuc2FjdGlvbnNDb2xzVHlwZXMgPSB7fTtcbiAgY29uc3QgdHlwZUNsYXNzZXNPYmpzID0gYXdhaXQgcGFnZUV2YWxBbGwocGFnZSwgYCR7dGFibGVMb2NhdG9yfSB0Ym9keSB0cjpmaXJzdC1vZi10eXBlIHRkYCwgbnVsbCwgKHRkcykgPT4ge1xuICAgIHJldHVybiB0ZHMubWFwKCh0ZCwgaW5kZXgpID0+ICh7XG4gICAgICBjb2xDbGFzczogdGQuZ2V0QXR0cmlidXRlKCdjbGFzcycpLFxuICAgICAgaW5kZXgsXG4gICAgfSkpO1xuICB9KTtcblxuICBmb3IgKGNvbnN0IHR5cGVDbGFzc09iaiBvZiB0eXBlQ2xhc3Nlc09ianMpIHtcbiAgICBpZiAodHlwZUNsYXNzT2JqLmNvbENsYXNzKSB7XG4gICAgICByZXN1bHRbdHlwZUNsYXNzT2JqLmNvbENsYXNzXSA9IHR5cGVDbGFzc09iai5pbmRleDtcbiAgICB9XG4gIH1cbiAgcmV0dXJuIHJlc3VsdDtcbn1cblxuZnVuY3Rpb24gZXh0cmFjdFRyYW5zYWN0aW9uKHR4bnM6IFNjcmFwZWRUcmFuc2FjdGlvbltdLCB0cmFuc2FjdGlvblN0YXR1czogVHJhbnNhY3Rpb25TdGF0dXNlcywgdHhuUm93OiBUcmFuc2FjdGlvbnNUciwgdHJhbnNhY3Rpb25zQ29sc1R5cGVzOiBUcmFuc2FjdGlvbnNDb2xzVHlwZXMpIHtcbiAgY29uc3QgdHhuID0gZXh0cmFjdFRyYW5zYWN0aW9uRGV0YWlscyh0eG5Sb3csIHRyYW5zYWN0aW9uU3RhdHVzLCB0cmFuc2FjdGlvbnNDb2xzVHlwZXMpO1xuICBpZiAodHhuLmRhdGUgIT09ICcnKSB7XG4gICAgdHhucy5wdXNoKHR4bik7XG4gIH1cbn1cblxuYXN5bmMgZnVuY3Rpb24gZXh0cmFjdFRyYW5zYWN0aW9ucyhwYWdlOiBQYWdlLCB0YWJsZUxvY2F0b3I6IHN0cmluZywgdHJhbnNhY3Rpb25TdGF0dXM6IFRyYW5zYWN0aW9uU3RhdHVzZXMpIHtcbiAgY29uc3QgdHhuczogU2NyYXBlZFRyYW5zYWN0aW9uW10gPSBbXTtcbiAgY29uc3QgdHJhbnNhY3Rpb25zQ29sc1R5cGVzID0gYXdhaXQgZ2V0VHJhbnNhY3Rpb25zQ29sc1R5cGVDbGFzc2VzKHBhZ2UsIHRhYmxlTG9jYXRvcik7XG5cbiAgY29uc3QgdHJhbnNhY3Rpb25zUm93cyA9IGF3YWl0IHBhZ2VFdmFsQWxsPFRyYW5zYWN0aW9uc1RyW10+KHBhZ2UsIGAke3RhYmxlTG9jYXRvcn0gdGJvZHkgdHJgLCBbXSwgKHRycykgPT4ge1xuICAgIHJldHVybiB0cnMubWFwKCh0cikgPT4gKHtcbiAgICAgIGlubmVyVGRzOiBBcnJheS5mcm9tKHRyLmdldEVsZW1lbnRzQnlUYWdOYW1lKCd0ZCcpKS5tYXAoKHRkKSA9PiB0ZC5pbm5lclRleHQpLFxuICAgIH0pKTtcbiAgfSk7XG5cbiAgZm9yIChjb25zdCB0eG5Sb3cgb2YgdHJhbnNhY3Rpb25zUm93cykge1xuICAgIGV4dHJhY3RUcmFuc2FjdGlvbih0eG5zLCB0cmFuc2FjdGlvblN0YXR1cywgdHhuUm93LCB0cmFuc2FjdGlvbnNDb2xzVHlwZXMpO1xuICB9XG4gIHJldHVybiB0eG5zO1xufVxuXG5hc3luYyBmdW5jdGlvbiBpc05vVHJhbnNhY3Rpb25JbkRhdGVSYW5nZUVycm9yKHBhZ2U6IFBhZ2UpIHtcbiAgY29uc3QgaGFzRXJyb3JJbmZvRWxlbWVudCA9IGF3YWl0IGVsZW1lbnRQcmVzZW50T25QYWdlKHBhZ2UsIGAuJHtFUlJPUl9NRVNTQUdFX0NMQVNTfWApO1xuICBpZiAoaGFzRXJyb3JJbmZvRWxlbWVudCkge1xuICAgIGNvbnN0IGVycm9yVGV4dCA9IGF3YWl0IHBhZ2UuJGV2YWwoYC4ke0VSUk9SX01FU1NBR0VfQ0xBU1N9YCwgKGVycm9yRWxlbWVudCkgPT4ge1xuICAgICAgcmV0dXJuIChlcnJvckVsZW1lbnQgYXMgSFRNTEVsZW1lbnQpLmlubmVyVGV4dDtcbiAgICB9KTtcbiAgICByZXR1cm4gZXJyb3JUZXh0LnRyaW0oKSA9PT0gTk9fVFJBTlNBQ1RJT05fSU5fREFURV9SQU5HRV9URVhUO1xuICB9XG4gIHJldHVybiBmYWxzZTtcbn1cblxuYXN5bmMgZnVuY3Rpb24gc2VhcmNoQnlEYXRlcyhwYWdlOiBQYWdlLCBzdGFydERhdGU6IE1vbWVudCkge1xuICBhd2FpdCBjbGlja0J1dHRvbihwYWdlLCAnYSN0YWJIZWFkZXI0Jyk7XG4gIGF3YWl0IHdhaXRVbnRpbEVsZW1lbnRGb3VuZChwYWdlLCAnZGl2I2ZpYmlfZGF0ZXMnKTtcbiAgYXdhaXQgZmlsbElucHV0KFxuICAgIHBhZ2UsXG4gICAgJ2lucHV0I2Zyb21EYXRlJyxcbiAgICBzdGFydERhdGUuZm9ybWF0KERBVEVfRk9STUFUKSxcbiAgKTtcbiAgYXdhaXQgY2xpY2tCdXR0b24ocGFnZSwgYGJ1dHRvbltjbGFzcyo9JHtDTE9TRV9TRUFSQ0hfQllfREFURVNfQlVUVE9OX0NMQVNTfV1gKTtcbiAgYXdhaXQgY2xpY2tCdXR0b24ocGFnZSwgYGlucHV0W3ZhbHVlPSR7U0hPV19TRUFSQ0hfQllfREFURVNfQlVUVE9OX1ZBTFVFfV1gKTtcbiAgYXdhaXQgd2FpdEZvck5hdmlnYXRpb24ocGFnZSk7XG59XG5cbmFzeW5jIGZ1bmN0aW9uIGdldEFjY291bnROdW1iZXIocGFnZTogUGFnZSkge1xuICBjb25zdCBzZWxlY3RlZFNuaWZBY2NvdW50ID0gYXdhaXQgcGFnZS4kZXZhbChBQ0NPVU5UU19OVU1CRVIsIChvcHRpb24pID0+IHtcbiAgICByZXR1cm4gKG9wdGlvbiBhcyBIVE1MRWxlbWVudCkuaW5uZXJUZXh0O1xuICB9KTtcblxuICByZXR1cm4gc2VsZWN0ZWRTbmlmQWNjb3VudC5yZXBsYWNlKCcvJywgJ18nKS50cmltKCk7XG59XG5cbmFzeW5jIGZ1bmN0aW9uIGNoZWNrSWZIYXNOZXh0UGFnZShwYWdlOiBQYWdlKSB7XG4gIHJldHVybiBlbGVtZW50UHJlc2VudE9uUGFnZShwYWdlLCBORVhUX1BBR0VfTElOSyk7XG59XG5cbmFzeW5jIGZ1bmN0aW9uIG5hdmlnYXRlVG9OZXh0UGFnZShwYWdlOiBQYWdlKSB7XG4gIGF3YWl0IGNsaWNrQnV0dG9uKHBhZ2UsIE5FWFRfUEFHRV9MSU5LKTtcbiAgYXdhaXQgd2FpdEZvck5hdmlnYXRpb24ocGFnZSk7XG59XG5cbi8qIENvdWxkbid0IHJlcHJvZHVjZSBzY2VuYXJpbyB3aXRoIG11bHRpcGxlIHBhZ2VzIG9mIHBlbmRpbmcgdHJhbnNhY3Rpb25zIC0gU2hvdWxkIHN1cHBvcnQgaWYgZXhpc3RzIHN1Y2ggY2FzZS5cbiAgIG5lZWRUb1BhZ2luYXRlIGlzIGZhbHNlIGlmIHNjcmFwaW5nIHBlbmRpbmcgdHJhbnNhY3Rpb25zICovXG5hc3luYyBmdW5jdGlvbiBzY3JhcGVUcmFuc2FjdGlvbnMocGFnZTogUGFnZSwgdGFibGVMb2NhdG9yOiBzdHJpbmcsIHRyYW5zYWN0aW9uU3RhdHVzOiBUcmFuc2FjdGlvblN0YXR1c2VzLCBuZWVkVG9QYWdpbmF0ZTogYm9vbGVhbikge1xuICBjb25zdCB0eG5zID0gW107XG4gIGxldCBoYXNOZXh0UGFnZSA9IGZhbHNlO1xuXG4gIGRvIHtcbiAgICBjb25zdCBjdXJyZW50UGFnZVR4bnMgPSBhd2FpdCBleHRyYWN0VHJhbnNhY3Rpb25zKHBhZ2UsIHRhYmxlTG9jYXRvciwgdHJhbnNhY3Rpb25TdGF0dXMpO1xuICAgIHR4bnMucHVzaCguLi5jdXJyZW50UGFnZVR4bnMpO1xuICAgIGlmIChuZWVkVG9QYWdpbmF0ZSkge1xuICAgICAgaGFzTmV4dFBhZ2UgPSBhd2FpdCBjaGVja0lmSGFzTmV4dFBhZ2UocGFnZSk7XG4gICAgICBpZiAoaGFzTmV4dFBhZ2UpIHtcbiAgICAgICAgYXdhaXQgbmF2aWdhdGVUb05leHRQYWdlKHBhZ2UpO1xuICAgICAgfVxuICAgIH1cbiAgfSB3aGlsZSAoaGFzTmV4dFBhZ2UpO1xuXG4gIHJldHVybiBjb252ZXJ0VHJhbnNhY3Rpb25zKHR4bnMpO1xufVxuXG5hc3luYyBmdW5jdGlvbiBnZXRBY2NvdW50VHJhbnNhY3Rpb25zKHBhZ2U6IFBhZ2UpIHtcbiAgYXdhaXQgUHJvbWlzZS5yYWNlKFtcbiAgICB3YWl0VW50aWxFbGVtZW50Rm91bmQocGFnZSwgJ2RpdltpZCo9XFwnZGl2VGFibGVcXCddJywgZmFsc2UpLFxuICAgIHdhaXRVbnRpbEVsZW1lbnRGb3VuZChwYWdlLCBgLiR7RVJST1JfTUVTU0FHRV9DTEFTU31gLCBmYWxzZSksXG4gIF0pO1xuXG4gIGNvbnN0IG5vVHJhbnNhY3Rpb25JblJhbmdlRXJyb3IgPSBhd2FpdCBpc05vVHJhbnNhY3Rpb25JbkRhdGVSYW5nZUVycm9yKHBhZ2UpO1xuICBpZiAobm9UcmFuc2FjdGlvbkluUmFuZ2VFcnJvcikge1xuICAgIHJldHVybiBbXTtcbiAgfVxuXG4gIGNvbnN0IHBlbmRpbmdUeG5zID0gYXdhaXQgc2NyYXBlVHJhbnNhY3Rpb25zKHBhZ2UsIFBFTkRJTkdfVFJBTlNBQ1RJT05TX1RBQkxFLFxuICAgIFRyYW5zYWN0aW9uU3RhdHVzZXMuUGVuZGluZywgZmFsc2UpO1xuICBjb25zdCBjb21wbGV0ZWRUeG5zID0gYXdhaXQgc2NyYXBlVHJhbnNhY3Rpb25zKHBhZ2UsIENPTVBMRVRFRF9UUkFOU0FDVElPTlNfVEFCTEUsXG4gICAgVHJhbnNhY3Rpb25TdGF0dXNlcy5Db21wbGV0ZWQsIHRydWUpO1xuICBjb25zdCB0eG5zID0gW1xuICAgIC4uLnBlbmRpbmdUeG5zLFxuICAgIC4uLmNvbXBsZXRlZFR4bnMsXG4gIF07XG4gIHJldHVybiB0eG5zO1xufVxuXG5hc3luYyBmdW5jdGlvbiBnZXRDdXJyZW50QmFsYW5jZShwYWdlOiBQYWdlKSB7XG4gIGNvbnN0IGJhbGFuY2VTdHIgPSBhd2FpdCBwYWdlLiRldmFsKENVUlJFTlRfQkFMQU5DRSwgKG9wdGlvbikgPT4ge1xuICAgIHJldHVybiAob3B0aW9uIGFzIEhUTUxFbGVtZW50KS5pbm5lclRleHQ7XG4gIH0pO1xuICByZXR1cm4gZ2V0QW1vdW50RGF0YShiYWxhbmNlU3RyKTtcbn1cblxuZXhwb3J0IGFzeW5jIGZ1bmN0aW9uIHdhaXRGb3JQb3N0TG9naW4ocGFnZTogUGFnZSkge1xuICByZXR1cm4gUHJvbWlzZS5yYWNlKFtcbiAgICB3YWl0VW50aWxFbGVtZW50Rm91bmQocGFnZSwgJyNtYXRhZkxvZ291dExpbmsnLCB0cnVlKSxcbiAgICB3YWl0VW50aWxFbGVtZW50Rm91bmQocGFnZSwgJyN2YWxpZGF0aW9uTXNnJywgdHJ1ZSksXG4gIF0pO1xufVxuXG5hc3luYyBmdW5jdGlvbiBmZXRjaEFjY291bnREYXRhKHBhZ2U6IFBhZ2UsIHN0YXJ0RGF0ZTogTW9tZW50KSB7XG4gIGF3YWl0IHNlYXJjaEJ5RGF0ZXMocGFnZSwgc3RhcnREYXRlKTtcbiAgY29uc3QgYWNjb3VudE51bWJlciA9IGF3YWl0IGdldEFjY291bnROdW1iZXIocGFnZSk7XG4gIGNvbnN0IGJhbGFuY2UgPSBhd2FpdCBnZXRDdXJyZW50QmFsYW5jZShwYWdlKTtcbiAgY29uc3QgdHhucyA9IGF3YWl0IGdldEFjY291bnRUcmFuc2FjdGlvbnMocGFnZSk7XG5cbiAgcmV0dXJuIHtcbiAgICBhY2NvdW50TnVtYmVyLFxuICAgIHR4bnMsXG4gICAgYmFsYW5jZSxcbiAgfTtcbn1cblxuYXN5bmMgZnVuY3Rpb24gZ2V0QWNjb3VudElkc0J5U2VsZWN0b3IocGFnZTogUGFnZSk6IFByb21pc2U8c3RyaW5nW10+IHtcbiAgY29uc3QgYWNjb3VudHNJZHMgPSBhd2FpdCBwYWdlLmV2YWx1YXRlKCgpID0+IHtcbiAgICBjb25zdCBzZWxlY3RFbGVtZW50ID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2FjY291bnRfbnVtX3NlbGVjdCcpO1xuICAgIGNvbnN0IG9wdGlvbnMgPSBzZWxlY3RFbGVtZW50ID8gc2VsZWN0RWxlbWVudC5xdWVyeVNlbGVjdG9yQWxsKCdvcHRpb24nKSA6IFtdO1xuICAgIGlmICghb3B0aW9ucykgcmV0dXJuIFtdO1xuICAgIHJldHVybiBBcnJheS5mcm9tKG9wdGlvbnMsIChvcHRpb24pID0+IG9wdGlvbi52YWx1ZSk7XG4gIH0pO1xuICByZXR1cm4gYWNjb3VudHNJZHM7XG59XG5cbmFzeW5jIGZ1bmN0aW9uIGZldGNoQWNjb3VudHMocGFnZTogUGFnZSwgc3RhcnREYXRlOiBNb21lbnQpIHtcbiAgY29uc3QgYWNjb3VudHM6IFRyYW5zYWN0aW9uc0FjY291bnRbXSA9IFtdO1xuICBjb25zdCBhY2NvdW50c0lkcyA9IGF3YWl0IGdldEFjY291bnRJZHNCeVNlbGVjdG9yKHBhZ2UpO1xuICBpZiAoYWNjb3VudHNJZHMubGVuZ3RoIDw9IDEpIHtcbiAgICBjb25zdCBhY2NvdW50RGF0YSA9IGF3YWl0IGZldGNoQWNjb3VudERhdGEocGFnZSwgc3RhcnREYXRlKTtcbiAgICBhY2NvdW50cy5wdXNoKGFjY291bnREYXRhKTtcbiAgfSBlbHNlIHtcbiAgICBmb3IgKGNvbnN0IGFjY291bnRJZCBvZiBhY2NvdW50c0lkcykge1xuICAgICAgYXdhaXQgcGFnZS5zZWxlY3QoJyNhY2NvdW50X251bV9zZWxlY3QnLCBhY2NvdW50SWQpO1xuICAgICAgYXdhaXQgd2FpdFVudGlsRWxlbWVudEZvdW5kKHBhZ2UsICcjYWNjb3VudF9udW1fc2VsZWN0JywgdHJ1ZSk7XG4gICAgICBjb25zdCBhY2NvdW50RGF0YSA9IGF3YWl0IGZldGNoQWNjb3VudERhdGEocGFnZSwgc3RhcnREYXRlKTtcbiAgICAgIGFjY291bnRzLnB1c2goYWNjb3VudERhdGEpO1xuICAgIH1cbiAgfVxuICByZXR1cm4gYWNjb3VudHM7XG59XG5cbnR5cGUgU2NyYXBlclNwZWNpZmljQ3JlZGVudGlhbHMgPSB7IHVzZXJuYW1lOiBzdHJpbmcsIHBhc3N3b3JkOiBzdHJpbmcgfTtcblxuY2xhc3MgQmVpbmxldW1pR3JvdXBCYXNlU2NyYXBlciBleHRlbmRzIEJhc2VTY3JhcGVyV2l0aEJyb3dzZXI8U2NyYXBlclNwZWNpZmljQ3JlZGVudGlhbHM+IHtcbiAgQkFTRV9VUkwgPSAnJztcblxuICBMT0dJTl9VUkwgPSAnJztcblxuICBUUkFOU0FDVElPTlNfVVJMID0gJyc7XG5cbiAgZ2V0TG9naW5PcHRpb25zKGNyZWRlbnRpYWxzOiBTY3JhcGVyU3BlY2lmaWNDcmVkZW50aWFscykge1xuICAgIHJldHVybiB7XG4gICAgICBsb2dpblVybDogYCR7dGhpcy5MT0dJTl9VUkx9YCxcbiAgICAgIGZpZWxkczogY3JlYXRlTG9naW5GaWVsZHMoY3JlZGVudGlhbHMpLFxuICAgICAgc3VibWl0QnV0dG9uU2VsZWN0b3I6ICcjY29udGludWVCdG4nLFxuICAgICAgcG9zdEFjdGlvbjogYXN5bmMgKCkgPT4gd2FpdEZvclBvc3RMb2dpbih0aGlzLnBhZ2UpLFxuICAgICAgcG9zc2libGVSZXN1bHRzOiBnZXRQb3NzaWJsZUxvZ2luUmVzdWx0cygpLFxuICAgICAgLy8gSEFDSzogRm9yIHNvbWUgcmVhc29uLCB0aG91Z2ggdGhlIGxvZ2luIGJ1dHRvbiAoI2NvbnRpbnVlQnRuKSBpcyBwcmVzZW50IGFuZCB2aXNpYmxlLCB0aGUgY2xpY2sgYWN0aW9uIGRvZXMgbm90IHBlcmZvcm0uXG4gICAgICAvLyBBZGRpbmcgdGhpcyBkZWxheSBmaXhlcyB0aGUgaXNzdWUuXG4gICAgICBwcmVBY3Rpb246IGFzeW5jICgpID0+IHtcbiAgICAgICAgYXdhaXQgc2xlZXAoMTAwMCk7XG4gICAgICB9LFxuICAgIH07XG4gIH1cblxuICBhc3luYyBmZXRjaERhdGEoKSB7XG4gICAgY29uc3QgZGVmYXVsdFN0YXJ0TW9tZW50ID0gbW9tZW50KCkuc3VidHJhY3QoMSwgJ3llYXJzJykuYWRkKDEsICdkYXknKTtcbiAgICBjb25zdCBzdGFydERhdGUgPSB0aGlzLm9wdGlvbnMuc3RhcnREYXRlIHx8IGRlZmF1bHRTdGFydE1vbWVudC50b0RhdGUoKTtcbiAgICBjb25zdCBzdGFydE1vbWVudCA9IG1vbWVudC5tYXgoZGVmYXVsdFN0YXJ0TW9tZW50LCBtb21lbnQoc3RhcnREYXRlKSk7XG5cbiAgICBhd2FpdCB0aGlzLm5hdmlnYXRlVG8odGhpcy5UUkFOU0FDVElPTlNfVVJMKTtcblxuICAgIGNvbnN0IGFjY291bnRzID0gYXdhaXQgZmV0Y2hBY2NvdW50cyh0aGlzLnBhZ2UsIHN0YXJ0TW9tZW50KTtcblxuICAgIHJldHVybiB7XG4gICAgICBzdWNjZXNzOiB0cnVlLFxuICAgICAgYWNjb3VudHMsXG4gICAgfTtcbiAgfVxufVxuXG5leHBvcnQgZGVmYXVsdCBCZWlubGV1bWlHcm91cEJhc2VTY3JhcGVyO1xuIl0sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7Ozs7O0FBQUEsSUFBQUEsT0FBQSxHQUFBQyxzQkFBQSxDQUFBQyxPQUFBO0FBRUEsSUFBQUMsVUFBQSxHQUFBRCxPQUFBO0FBQ0EsSUFBQUUscUJBQUEsR0FBQUYsT0FBQTtBQU9BLElBQUFHLFdBQUEsR0FBQUgsT0FBQTtBQUNB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
|
|
298
|
+
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJfbW9tZW50IiwiX2ludGVyb3BSZXF1aXJlRGVmYXVsdCIsInJlcXVpcmUiLCJfY29uc3RhbnRzIiwiX2VsZW1lbnRzSW50ZXJhY3Rpb25zIiwiX25hdmlnYXRpb24iLCJfd2FpdGluZyIsIl90cmFuc2FjdGlvbnMiLCJfYmFzZVNjcmFwZXJXaXRoQnJvd3NlciIsImUiLCJfX2VzTW9kdWxlIiwiZGVmYXVsdCIsIl9kZWZpbmVQcm9wZXJ0eSIsInIiLCJ0IiwiX3RvUHJvcGVydHlLZXkiLCJPYmplY3QiLCJkZWZpbmVQcm9wZXJ0eSIsInZhbHVlIiwiZW51bWVyYWJsZSIsImNvbmZpZ3VyYWJsZSIsIndyaXRhYmxlIiwiaSIsIl90b1ByaW1pdGl2ZSIsIlN5bWJvbCIsInRvUHJpbWl0aXZlIiwiY2FsbCIsIlR5cGVFcnJvciIsIlN0cmluZyIsIk51bWJlciIsIkRBVEVfRk9STUFUIiwiTk9fVFJBTlNBQ1RJT05fSU5fREFURV9SQU5HRV9URVhUIiwiREFURV9DT0xVTU5fQ0xBU1NfQ09NUExFVEVEIiwiREFURV9DT0xVTU5fQ0xBU1NfUEVORElORyIsIkRFU0NSSVBUSU9OX0NPTFVNTl9DTEFTU19DT01QTEVURUQiLCJERVNDUklQVElPTl9DT0xVTU5fQ0xBU1NfUEVORElORyIsIlJFRkVSRU5DRV9DT0xVTU5fQ0xBU1MiLCJERUJJVF9DT0xVTU5fQ0xBU1MiLCJDUkVESVRfQ09MVU1OX0NMQVNTIiwiRVJST1JfTUVTU0FHRV9DTEFTUyIsIkFDQ09VTlRTX05VTUJFUiIsIkNMT1NFX1NFQVJDSF9CWV9EQVRFU19CVVRUT05fQ0xBU1MiLCJTSE9XX1NFQVJDSF9CWV9EQVRFU19CVVRUT05fVkFMVUUiLCJDT01QTEVURURfVFJBTlNBQ1RJT05TX1RBQkxFIiwiUEVORElOR19UUkFOU0FDVElPTlNfVEFCTEUiLCJORVhUX1BBR0VfTElOSyIsIkNVUlJFTlRfQkFMQU5DRSIsImdldFBvc3NpYmxlTG9naW5SZXN1bHRzIiwidXJscyIsIkxvZ2luUmVzdWx0cyIsIlN1Y2Nlc3MiLCJJbnZhbGlkUGFzc3dvcmQiLCJjcmVhdGVMb2dpbkZpZWxkcyIsImNyZWRlbnRpYWxzIiwic2VsZWN0b3IiLCJ1c2VybmFtZSIsInBhc3N3b3JkIiwiZ2V0QW1vdW50RGF0YSIsImFtb3VudFN0ciIsImFtb3VudFN0ckNvcHkiLCJyZXBsYWNlIiwiU0hFS0VMX0NVUlJFTkNZX1NZTUJPTCIsInJlcGxhY2VBbGwiLCJwYXJzZUZsb2F0IiwiZ2V0VHhuQW1vdW50IiwidHhuIiwiY3JlZGl0IiwiZGViaXQiLCJpc05hTiIsImNvbnZlcnRUcmFuc2FjdGlvbnMiLCJ0eG5zIiwibWFwIiwiY29udmVydGVkRGF0ZSIsIm1vbWVudCIsImRhdGUiLCJ0b0lTT1N0cmluZyIsImNvbnZlcnRlZEFtb3VudCIsInR5cGUiLCJUcmFuc2FjdGlvblR5cGVzIiwiTm9ybWFsIiwiaWRlbnRpZmllciIsInJlZmVyZW5jZSIsInBhcnNlSW50IiwidW5kZWZpbmVkIiwicHJvY2Vzc2VkRGF0ZSIsIm9yaWdpbmFsQW1vdW50Iiwib3JpZ2luYWxDdXJyZW5jeSIsIlNIRUtFTF9DVVJSRU5DWSIsImNoYXJnZWRBbW91bnQiLCJzdGF0dXMiLCJkZXNjcmlwdGlvbiIsIm1lbW8iLCJnZXRUcmFuc2FjdGlvbkRhdGUiLCJ0ZHMiLCJ0cmFuc2FjdGlvblR5cGUiLCJ0cmFuc2FjdGlvbnNDb2xzVHlwZXMiLCJ0cmltIiwiZ2V0VHJhbnNhY3Rpb25EZXNjcmlwdGlvbiIsImdldFRyYW5zYWN0aW9uUmVmZXJlbmNlIiwiZ2V0VHJhbnNhY3Rpb25EZWJpdCIsImdldFRyYW5zYWN0aW9uQ3JlZGl0IiwiZXh0cmFjdFRyYW5zYWN0aW9uRGV0YWlscyIsInR4blJvdyIsInRyYW5zYWN0aW9uU3RhdHVzIiwiaW5uZXJUZHMiLCJpdGVtIiwiZ2V0VHJhbnNhY3Rpb25zQ29sc1R5cGVDbGFzc2VzIiwicGFnZSIsInRhYmxlTG9jYXRvciIsInJlc3VsdCIsInR5cGVDbGFzc2VzT2JqcyIsInBhZ2VFdmFsQWxsIiwidGQiLCJpbmRleCIsImNvbENsYXNzIiwiZ2V0QXR0cmlidXRlIiwidHlwZUNsYXNzT2JqIiwiZXh0cmFjdFRyYW5zYWN0aW9uIiwicHVzaCIsImV4dHJhY3RUcmFuc2FjdGlvbnMiLCJ0cmFuc2FjdGlvbnNSb3dzIiwidHJzIiwidHIiLCJBcnJheSIsImZyb20iLCJnZXRFbGVtZW50c0J5VGFnTmFtZSIsImlubmVyVGV4dCIsImlzTm9UcmFuc2FjdGlvbkluRGF0ZVJhbmdlRXJyb3IiLCJoYXNFcnJvckluZm9FbGVtZW50IiwiZWxlbWVudFByZXNlbnRPblBhZ2UiLCJlcnJvclRleHQiLCIkZXZhbCIsImVycm9yRWxlbWVudCIsInNlYXJjaEJ5RGF0ZXMiLCJzdGFydERhdGUiLCJjbGlja0J1dHRvbiIsIndhaXRVbnRpbEVsZW1lbnRGb3VuZCIsImZpbGxJbnB1dCIsImZvcm1hdCIsIndhaXRGb3JOYXZpZ2F0aW9uIiwiZ2V0QWNjb3VudE51bWJlciIsInNlbGVjdGVkU25pZkFjY291bnQiLCJvcHRpb24iLCJjaGVja0lmSGFzTmV4dFBhZ2UiLCJuYXZpZ2F0ZVRvTmV4dFBhZ2UiLCJzY3JhcGVUcmFuc2FjdGlvbnMiLCJuZWVkVG9QYWdpbmF0ZSIsImhhc05leHRQYWdlIiwiY3VycmVudFBhZ2VUeG5zIiwiZ2V0QWNjb3VudFRyYW5zYWN0aW9ucyIsIlByb21pc2UiLCJyYWNlIiwibm9UcmFuc2FjdGlvbkluUmFuZ2VFcnJvciIsInBlbmRpbmdUeG5zIiwiVHJhbnNhY3Rpb25TdGF0dXNlcyIsIlBlbmRpbmciLCJjb21wbGV0ZWRUeG5zIiwiQ29tcGxldGVkIiwiZ2V0Q3VycmVudEJhbGFuY2UiLCJiYWxhbmNlRWxlbWVudCIsIiQiLCJiYWxhbmNlU3RyIiwiZXZhbHVhdGUiLCJ3YWl0Rm9yUG9zdExvZ2luIiwiZmV0Y2hBY2NvdW50RGF0YSIsImFjY291bnROdW1iZXIiLCJiYWxhbmNlIiwiZ2V0QWNjb3VudElkc0J5U2VsZWN0b3IiLCJhY2NvdW50c0lkcyIsInNlbGVjdEVsZW1lbnQiLCJkb2N1bWVudCIsImdldEVsZW1lbnRCeUlkIiwib3B0aW9ucyIsInF1ZXJ5U2VsZWN0b3JBbGwiLCJmZXRjaEFjY291bnRzIiwiYWNjb3VudHMiLCJsZW5ndGgiLCJhY2NvdW50RGF0YSIsImFjY291bnRJZCIsInNlbGVjdCIsIkJlaW5sZXVtaUdyb3VwQmFzZVNjcmFwZXIiLCJCYXNlU2NyYXBlcldpdGhCcm93c2VyIiwiY29uc3RydWN0b3IiLCJhcmdzIiwiZ2V0TG9naW5PcHRpb25zIiwibG9naW5VcmwiLCJMT0dJTl9VUkwiLCJmaWVsZHMiLCJzdWJtaXRCdXR0b25TZWxlY3RvciIsInBvc3RBY3Rpb24iLCJwb3NzaWJsZVJlc3VsdHMiLCJwcmVBY3Rpb24iLCJzbGVlcCIsImZldGNoRGF0YSIsImRlZmF1bHRTdGFydE1vbWVudCIsInN1YnRyYWN0IiwiYWRkIiwidG9EYXRlIiwic3RhcnRNb21lbnQiLCJtYXgiLCJuYXZpZ2F0ZVRvIiwiVFJBTlNBQ1RJT05TX1VSTCIsInN1Y2Nlc3MiLCJfZGVmYXVsdCIsImV4cG9ydHMiXSwic291cmNlcyI6WyIuLi8uLi9zcmMvc2NyYXBlcnMvYmFzZS1iZWlubGV1bWktZ3JvdXAudHMiXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IG1vbWVudCwgeyB0eXBlIE1vbWVudCB9IGZyb20gJ21vbWVudCc7XG5pbXBvcnQgeyB0eXBlIFBhZ2UgfSBmcm9tICdwdXBwZXRlZXInO1xuaW1wb3J0IHsgU0hFS0VMX0NVUlJFTkNZLCBTSEVLRUxfQ1VSUkVOQ1lfU1lNQk9MIH0gZnJvbSAnLi4vY29uc3RhbnRzJztcbmltcG9ydCB7XG4gIGNsaWNrQnV0dG9uLFxuICBlbGVtZW50UHJlc2VudE9uUGFnZSxcbiAgZmlsbElucHV0LFxuICBwYWdlRXZhbEFsbCxcbiAgd2FpdFVudGlsRWxlbWVudEZvdW5kLFxufSBmcm9tICcuLi9oZWxwZXJzL2VsZW1lbnRzLWludGVyYWN0aW9ucyc7XG5pbXBvcnQgeyB3YWl0Rm9yTmF2aWdhdGlvbiB9IGZyb20gJy4uL2hlbHBlcnMvbmF2aWdhdGlvbic7XG5pbXBvcnQgeyBzbGVlcCB9IGZyb20gJy4uL2hlbHBlcnMvd2FpdGluZyc7XG5pbXBvcnQge1xuICBUcmFuc2FjdGlvblN0YXR1c2VzLCBUcmFuc2FjdGlvblR5cGVzLFxuICB0eXBlIFRyYW5zYWN0aW9uLFxuICB0eXBlIFRyYW5zYWN0aW9uc0FjY291bnQsXG59IGZyb20gJy4uL3RyYW5zYWN0aW9ucyc7XG5pbXBvcnQgeyBCYXNlU2NyYXBlcldpdGhCcm93c2VyLCBMb2dpblJlc3VsdHMsIHR5cGUgUG9zc2libGVMb2dpblJlc3VsdHMgfSBmcm9tICcuL2Jhc2Utc2NyYXBlci13aXRoLWJyb3dzZXInO1xuXG5jb25zdCBEQVRFX0ZPUk1BVCA9ICdERC9NTS9ZWVlZJztcbmNvbnN0IE5PX1RSQU5TQUNUSU9OX0lOX0RBVEVfUkFOR0VfVEVYVCA9ICfXnNeQINeg157XpteQ15Ug16DXqteV16DXmdedINeR16DXldep15Ag15TXnteR15XXp9epJztcbmNvbnN0IERBVEVfQ09MVU1OX0NMQVNTX0NPTVBMRVRFRCA9ICdkYXRlIGZpcnN0JztcbmNvbnN0IERBVEVfQ09MVU1OX0NMQVNTX1BFTkRJTkcgPSAnZmlyc3QgZGF0ZSc7XG5jb25zdCBERVNDUklQVElPTl9DT0xVTU5fQ0xBU1NfQ09NUExFVEVEID0gJ3JlZmVyZW5jZSB3cmFwX25vcm1hbCc7XG5jb25zdCBERVNDUklQVElPTl9DT0xVTU5fQ0xBU1NfUEVORElORyA9ICdkZXRhaWxzIHdyYXBfbm9ybWFsJztcbmNvbnN0IFJFRkVSRU5DRV9DT0xVTU5fQ0xBU1MgPSAnZGV0YWlscyc7XG5jb25zdCBERUJJVF9DT0xVTU5fQ0xBU1MgPSAnZGViaXQnO1xuY29uc3QgQ1JFRElUX0NPTFVNTl9DTEFTUyA9ICdjcmVkaXQnOyBcbmNvbnN0IEVSUk9SX01FU1NBR0VfQ0xBU1MgPSAnTk9fREFUQSc7XG5jb25zdCBBQ0NPVU5UU19OVU1CRVIgPSAnZGl2LmZpYmlfYWNjb3VudCBzcGFuLmFjY19udW0nO1xuY29uc3QgQ0xPU0VfU0VBUkNIX0JZX0RBVEVTX0JVVFRPTl9DTEFTUyA9ICd1aS1kYXRlcGlja2VyLWNsb3NlJztcbmNvbnN0IFNIT1dfU0VBUkNIX0JZX0RBVEVTX0JVVFRPTl9WQUxVRSA9ICfXlNem15InO1xuY29uc3QgQ09NUExFVEVEX1RSQU5TQUNUSU9OU19UQUJMRSA9ICd0YWJsZSNkYXRhVGFibGUwNzcnO1xuY29uc3QgUEVORElOR19UUkFOU0FDVElPTlNfVEFCTEUgPSAndGFibGUjZGF0YVRhYmxlMDIzJztcbmNvbnN0IE5FWFRfUEFHRV9MSU5LID0gJ2EjTnBhZ2UucGFnaW5nJztcbmNvbnN0IENVUlJFTlRfQkFMQU5DRSA9ICcubWFpbl9iYWxhbmNlJztcblxudHlwZSBUcmFuc2FjdGlvbnNDb2xzVHlwZXMgPSBSZWNvcmQ8c3RyaW5nLCBudW1iZXI+O1xudHlwZSBUcmFuc2FjdGlvbnNUclRkcyA9IHN0cmluZ1tdO1xudHlwZSBUcmFuc2FjdGlvbnNUciA9IHsgaW5uZXJUZHM6IFRyYW5zYWN0aW9uc1RyVGRzIH07XG5cbmludGVyZmFjZSBTY3JhcGVkVHJhbnNhY3Rpb24ge1xuICByZWZlcmVuY2U6IHN0cmluZztcbiAgZGF0ZTogc3RyaW5nO1xuICBjcmVkaXQ6IHN0cmluZztcbiAgZGViaXQ6IHN0cmluZztcbiAgbWVtbz86IHN0cmluZztcbiAgZGVzY3JpcHRpb246IHN0cmluZztcbiAgc3RhdHVzOiBUcmFuc2FjdGlvblN0YXR1c2VzO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gZ2V0UG9zc2libGVMb2dpblJlc3VsdHMoKTogUG9zc2libGVMb2dpblJlc3VsdHMge1xuICBjb25zdCB1cmxzOiBQb3NzaWJsZUxvZ2luUmVzdWx0cyA9IHt9O1xuICB1cmxzW0xvZ2luUmVzdWx0cy5TdWNjZXNzXSA9IFsvRmliaU1lbnVcXC9PbmxpbmUvXTtcbiAgdXJsc1tMb2dpblJlc3VsdHMuSW52YWxpZFBhc3N3b3JkXSA9IFsvRmliaU1lbnVcXC9NYXJrZXRpbmdcXC9Qcml2YXRlXFwvSG9tZS9dO1xuICByZXR1cm4gdXJscztcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGNyZWF0ZUxvZ2luRmllbGRzKGNyZWRlbnRpYWxzOiBTY3JhcGVyU3BlY2lmaWNDcmVkZW50aWFscykge1xuICByZXR1cm4gW1xuICAgIHsgc2VsZWN0b3I6ICcjdXNlcm5hbWUnLCB2YWx1ZTogY3JlZGVudGlhbHMudXNlcm5hbWUgfSxcbiAgICB7IHNlbGVjdG9yOiAnI3Bhc3N3b3JkJywgdmFsdWU6IGNyZWRlbnRpYWxzLnBhc3N3b3JkIH0sXG4gIF07XG59XG5cbmZ1bmN0aW9uIGdldEFtb3VudERhdGEoYW1vdW50U3RyOiBzdHJpbmcpIHtcbiAgbGV0IGFtb3VudFN0ckNvcHkgPSBhbW91bnRTdHIucmVwbGFjZShTSEVLRUxfQ1VSUkVOQ1lfU1lNQk9MLCAnJyk7XG4gIGFtb3VudFN0ckNvcHkgPSBhbW91bnRTdHJDb3B5LnJlcGxhY2VBbGwoJywnLCAnJyk7XG4gIHJldHVybiBwYXJzZUZsb2F0KGFtb3VudFN0ckNvcHkpO1xufVxuXG5mdW5jdGlvbiBnZXRUeG5BbW91bnQodHhuOiBTY3JhcGVkVHJhbnNhY3Rpb24pIHtcbiAgY29uc3QgY3JlZGl0ID0gZ2V0QW1vdW50RGF0YSh0eG4uY3JlZGl0KTtcbiAgY29uc3QgZGViaXQgPSBnZXRBbW91bnREYXRhKHR4bi5kZWJpdCk7XG4gIHJldHVybiAoTnVtYmVyLmlzTmFOKGNyZWRpdCkgPyAwIDogY3JlZGl0KSAtIChOdW1iZXIuaXNOYU4oZGViaXQpID8gMCA6IGRlYml0KTtcbn1cblxuZnVuY3Rpb24gY29udmVydFRyYW5zYWN0aW9ucyh0eG5zOiBTY3JhcGVkVHJhbnNhY3Rpb25bXSk6IFRyYW5zYWN0aW9uW10ge1xuICByZXR1cm4gdHhucy5tYXAoKHR4bik6IFRyYW5zYWN0aW9uID0+IHtcbiAgICBjb25zdCBjb252ZXJ0ZWREYXRlID0gbW9tZW50KHR4bi5kYXRlLCBEQVRFX0ZPUk1BVCkudG9JU09TdHJpbmcoKTtcbiAgICBjb25zdCBjb252ZXJ0ZWRBbW91bnQgPSBnZXRUeG5BbW91bnQodHhuKTtcbiAgICByZXR1cm4ge1xuICAgICAgdHlwZTogVHJhbnNhY3Rpb25UeXBlcy5Ob3JtYWwsXG4gICAgICBpZGVudGlmaWVyOiB0eG4ucmVmZXJlbmNlID8gcGFyc2VJbnQodHhuLnJlZmVyZW5jZSwgMTApIDogdW5kZWZpbmVkLFxuICAgICAgZGF0ZTogY29udmVydGVkRGF0ZSxcbiAgICAgIHByb2Nlc3NlZERhdGU6IGNvbnZlcnRlZERhdGUsXG4gICAgICBvcmlnaW5hbEFtb3VudDogY29udmVydGVkQW1vdW50LFxuICAgICAgb3JpZ2luYWxDdXJyZW5jeTogU0hFS0VMX0NVUlJFTkNZLFxuICAgICAgY2hhcmdlZEFtb3VudDogY29udmVydGVkQW1vdW50LFxuICAgICAgc3RhdHVzOiB0eG4uc3RhdHVzLFxuICAgICAgZGVzY3JpcHRpb246IHR4bi5kZXNjcmlwdGlvbixcbiAgICAgIG1lbW86IHR4bi5tZW1vLFxuICAgIH07XG4gIH0pO1xufVxuXG5mdW5jdGlvbiBnZXRUcmFuc2FjdGlvbkRhdGUodGRzOiBUcmFuc2FjdGlvbnNUclRkcywgdHJhbnNhY3Rpb25UeXBlOiBzdHJpbmcsIHRyYW5zYWN0aW9uc0NvbHNUeXBlczogVHJhbnNhY3Rpb25zQ29sc1R5cGVzKSB7XG4gIGlmICh0cmFuc2FjdGlvblR5cGUgPT09ICdjb21wbGV0ZWQnKSB7XG4gICAgcmV0dXJuICh0ZHNbdHJhbnNhY3Rpb25zQ29sc1R5cGVzW0RBVEVfQ09MVU1OX0NMQVNTX0NPTVBMRVRFRF1dIHx8ICcnKS50cmltKCk7XG4gIH1cbiAgcmV0dXJuICh0ZHNbdHJhbnNhY3Rpb25zQ29sc1R5cGVzW0RBVEVfQ09MVU1OX0NMQVNTX1BFTkRJTkddXSB8fCAnJykudHJpbSgpO1xufVxuXG5mdW5jdGlvbiBnZXRUcmFuc2FjdGlvbkRlc2NyaXB0aW9uKHRkczogVHJhbnNhY3Rpb25zVHJUZHMsIHRyYW5zYWN0aW9uVHlwZTogc3RyaW5nLCB0cmFuc2FjdGlvbnNDb2xzVHlwZXM6IFRyYW5zYWN0aW9uc0NvbHNUeXBlcykge1xuICBpZiAodHJhbnNhY3Rpb25UeXBlID09PSAnY29tcGxldGVkJykge1xuICAgIHJldHVybiAodGRzW3RyYW5zYWN0aW9uc0NvbHNUeXBlc1tERVNDUklQVElPTl9DT0xVTU5fQ0xBU1NfQ09NUExFVEVEXV0gfHwgJycpLnRyaW0oKTtcbiAgfVxuICByZXR1cm4gKHRkc1t0cmFuc2FjdGlvbnNDb2xzVHlwZXNbREVTQ1JJUFRJT05fQ09MVU1OX0NMQVNTX1BFTkRJTkddXSB8fCAnJykudHJpbSgpO1xufVxuXG5mdW5jdGlvbiBnZXRUcmFuc2FjdGlvblJlZmVyZW5jZSh0ZHM6IFRyYW5zYWN0aW9uc1RyVGRzLCB0cmFuc2FjdGlvbnNDb2xzVHlwZXM6IFRyYW5zYWN0aW9uc0NvbHNUeXBlcykge1xuICByZXR1cm4gKHRkc1t0cmFuc2FjdGlvbnNDb2xzVHlwZXNbUkVGRVJFTkNFX0NPTFVNTl9DTEFTU11dIHx8ICcnKS50cmltKCk7XG59XG5cbmZ1bmN0aW9uIGdldFRyYW5zYWN0aW9uRGViaXQodGRzOiBUcmFuc2FjdGlvbnNUclRkcywgdHJhbnNhY3Rpb25zQ29sc1R5cGVzOiBUcmFuc2FjdGlvbnNDb2xzVHlwZXMpIHtcbiAgcmV0dXJuICh0ZHNbdHJhbnNhY3Rpb25zQ29sc1R5cGVzW0RFQklUX0NPTFVNTl9DTEFTU11dIHx8ICcnKS50cmltKCk7XG59XG5cbmZ1bmN0aW9uIGdldFRyYW5zYWN0aW9uQ3JlZGl0KHRkczogVHJhbnNhY3Rpb25zVHJUZHMsIHRyYW5zYWN0aW9uc0NvbHNUeXBlczogVHJhbnNhY3Rpb25zQ29sc1R5cGVzKSB7XG4gIHJldHVybiAodGRzW3RyYW5zYWN0aW9uc0NvbHNUeXBlc1tDUkVESVRfQ09MVU1OX0NMQVNTXV0gfHwgJycpLnRyaW0oKTtcbn1cblxuZnVuY3Rpb24gZXh0cmFjdFRyYW5zYWN0aW9uRGV0YWlscyh0eG5Sb3c6IFRyYW5zYWN0aW9uc1RyLCB0cmFuc2FjdGlvblN0YXR1czogVHJhbnNhY3Rpb25TdGF0dXNlcywgdHJhbnNhY3Rpb25zQ29sc1R5cGVzOiBUcmFuc2FjdGlvbnNDb2xzVHlwZXMpOiBTY3JhcGVkVHJhbnNhY3Rpb24ge1xuICBjb25zdCB0ZHMgPSB0eG5Sb3cuaW5uZXJUZHM7XG4gIGNvbnN0IGl0ZW0gPSB7XG4gICAgc3RhdHVzOiB0cmFuc2FjdGlvblN0YXR1cyxcbiAgICBkYXRlOiBnZXRUcmFuc2FjdGlvbkRhdGUodGRzLCB0cmFuc2FjdGlvblN0YXR1cywgdHJhbnNhY3Rpb25zQ29sc1R5cGVzKSxcbiAgICBkZXNjcmlwdGlvbjogZ2V0VHJhbnNhY3Rpb25EZXNjcmlwdGlvbih0ZHMsIHRyYW5zYWN0aW9uU3RhdHVzLCB0cmFuc2FjdGlvbnNDb2xzVHlwZXMpLFxuICAgIHJlZmVyZW5jZTogZ2V0VHJhbnNhY3Rpb25SZWZlcmVuY2UodGRzLCB0cmFuc2FjdGlvbnNDb2xzVHlwZXMpLFxuICAgIGRlYml0OiBnZXRUcmFuc2FjdGlvbkRlYml0KHRkcywgdHJhbnNhY3Rpb25zQ29sc1R5cGVzKSxcbiAgICBjcmVkaXQ6IGdldFRyYW5zYWN0aW9uQ3JlZGl0KHRkcywgdHJhbnNhY3Rpb25zQ29sc1R5cGVzKSxcbiAgfTtcblxuICByZXR1cm4gaXRlbTtcbn1cblxuYXN5bmMgZnVuY3Rpb24gZ2V0VHJhbnNhY3Rpb25zQ29sc1R5cGVDbGFzc2VzKHBhZ2U6IFBhZ2UsIHRhYmxlTG9jYXRvcjogc3RyaW5nKTogUHJvbWlzZTxUcmFuc2FjdGlvbnNDb2xzVHlwZXM+IHtcbiAgY29uc3QgcmVzdWx0OiBUcmFuc2FjdGlvbnNDb2xzVHlwZXMgPSB7fTtcbiAgY29uc3QgdHlwZUNsYXNzZXNPYmpzID0gYXdhaXQgcGFnZUV2YWxBbGwocGFnZSwgYCR7dGFibGVMb2NhdG9yfSB0Ym9keSB0cjpmaXJzdC1vZi10eXBlIHRkYCwgbnVsbCwgKHRkcykgPT4ge1xuICAgIHJldHVybiB0ZHMubWFwKCh0ZCwgaW5kZXgpID0+ICh7XG4gICAgICBjb2xDbGFzczogdGQuZ2V0QXR0cmlidXRlKCdjbGFzcycpLFxuICAgICAgaW5kZXgsXG4gICAgfSkpO1xuICB9KTtcblxuICBmb3IgKGNvbnN0IHR5cGVDbGFzc09iaiBvZiB0eXBlQ2xhc3Nlc09ianMpIHtcbiAgICBpZiAodHlwZUNsYXNzT2JqLmNvbENsYXNzKSB7XG4gICAgICByZXN1bHRbdHlwZUNsYXNzT2JqLmNvbENsYXNzXSA9IHR5cGVDbGFzc09iai5pbmRleDtcbiAgICB9XG4gIH1cbiAgcmV0dXJuIHJlc3VsdDtcbn1cblxuZnVuY3Rpb24gZXh0cmFjdFRyYW5zYWN0aW9uKHR4bnM6IFNjcmFwZWRUcmFuc2FjdGlvbltdLCB0cmFuc2FjdGlvblN0YXR1czogVHJhbnNhY3Rpb25TdGF0dXNlcywgdHhuUm93OiBUcmFuc2FjdGlvbnNUciwgdHJhbnNhY3Rpb25zQ29sc1R5cGVzOiBUcmFuc2FjdGlvbnNDb2xzVHlwZXMpIHtcbiAgY29uc3QgdHhuID0gZXh0cmFjdFRyYW5zYWN0aW9uRGV0YWlscyh0eG5Sb3csIHRyYW5zYWN0aW9uU3RhdHVzLCB0cmFuc2FjdGlvbnNDb2xzVHlwZXMpO1xuICBpZiAodHhuLmRhdGUgIT09ICcnKSB7XG4gICAgdHhucy5wdXNoKHR4bik7XG4gIH1cbn1cblxuYXN5bmMgZnVuY3Rpb24gZXh0cmFjdFRyYW5zYWN0aW9ucyhwYWdlOiBQYWdlLCB0YWJsZUxvY2F0b3I6IHN0cmluZywgdHJhbnNhY3Rpb25TdGF0dXM6IFRyYW5zYWN0aW9uU3RhdHVzZXMpIHtcbiAgY29uc3QgdHhuczogU2NyYXBlZFRyYW5zYWN0aW9uW10gPSBbXTtcbiAgY29uc3QgdHJhbnNhY3Rpb25zQ29sc1R5cGVzID0gYXdhaXQgZ2V0VHJhbnNhY3Rpb25zQ29sc1R5cGVDbGFzc2VzKHBhZ2UsIHRhYmxlTG9jYXRvcik7XG5cbiAgY29uc3QgdHJhbnNhY3Rpb25zUm93cyA9IGF3YWl0IHBhZ2VFdmFsQWxsPFRyYW5zYWN0aW9uc1RyW10+KHBhZ2UsIGAke3RhYmxlTG9jYXRvcn0gdGJvZHkgdHJgLCBbXSwgKHRycykgPT4ge1xuICAgIHJldHVybiB0cnMubWFwKCh0cikgPT4gKHtcbiAgICAgIGlubmVyVGRzOiBBcnJheS5mcm9tKHRyLmdldEVsZW1lbnRzQnlUYWdOYW1lKCd0ZCcpKS5tYXAoKHRkKSA9PiB0ZC5pbm5lclRleHQpLFxuICAgIH0pKTtcbiAgfSk7XG5cbiAgZm9yIChjb25zdCB0eG5Sb3cgb2YgdHJhbnNhY3Rpb25zUm93cykge1xuICAgIGV4dHJhY3RUcmFuc2FjdGlvbih0eG5zLCB0cmFuc2FjdGlvblN0YXR1cywgdHhuUm93LCB0cmFuc2FjdGlvbnNDb2xzVHlwZXMpO1xuICB9XG4gIHJldHVybiB0eG5zO1xufVxuXG5hc3luYyBmdW5jdGlvbiBpc05vVHJhbnNhY3Rpb25JbkRhdGVSYW5nZUVycm9yKHBhZ2U6IFBhZ2UpIHtcbiAgY29uc3QgaGFzRXJyb3JJbmZvRWxlbWVudCA9IGF3YWl0IGVsZW1lbnRQcmVzZW50T25QYWdlKHBhZ2UsIGAuJHtFUlJPUl9NRVNTQUdFX0NMQVNTfWApO1xuICBpZiAoaGFzRXJyb3JJbmZvRWxlbWVudCkge1xuICAgIGNvbnN0IGVycm9yVGV4dCA9IGF3YWl0IHBhZ2UuJGV2YWwoYC4ke0VSUk9SX01FU1NBR0VfQ0xBU1N9YCwgKGVycm9yRWxlbWVudCkgPT4ge1xuICAgICAgcmV0dXJuIChlcnJvckVsZW1lbnQgYXMgSFRNTEVsZW1lbnQpLmlubmVyVGV4dDtcbiAgICB9KTtcbiAgICByZXR1cm4gZXJyb3JUZXh0LnRyaW0oKSA9PT0gTk9fVFJBTlNBQ1RJT05fSU5fREFURV9SQU5HRV9URVhUO1xuICB9XG4gIHJldHVybiBmYWxzZTtcbn1cblxuYXN5bmMgZnVuY3Rpb24gc2VhcmNoQnlEYXRlcyhwYWdlOiBQYWdlLCBzdGFydERhdGU6IE1vbWVudCkge1xuICBhd2FpdCBjbGlja0J1dHRvbihwYWdlLCAnYSN0YWJIZWFkZXI0Jyk7XG4gIGF3YWl0IHdhaXRVbnRpbEVsZW1lbnRGb3VuZChwYWdlLCAnZGl2I2ZpYmlfZGF0ZXMnKTtcbiAgYXdhaXQgZmlsbElucHV0KFxuICAgIHBhZ2UsXG4gICAgJ2lucHV0I2Zyb21EYXRlJyxcbiAgICBzdGFydERhdGUuZm9ybWF0KERBVEVfRk9STUFUKSxcbiAgKTtcbiAgYXdhaXQgY2xpY2tCdXR0b24ocGFnZSwgYGJ1dHRvbltjbGFzcyo9JHtDTE9TRV9TRUFSQ0hfQllfREFURVNfQlVUVE9OX0NMQVNTfV1gKTtcbiAgYXdhaXQgY2xpY2tCdXR0b24ocGFnZSwgYGlucHV0W3ZhbHVlPSR7U0hPV19TRUFSQ0hfQllfREFURVNfQlVUVE9OX1ZBTFVFfV1gKTtcbiAgYXdhaXQgd2FpdEZvck5hdmlnYXRpb24ocGFnZSk7XG59XG5cbmFzeW5jIGZ1bmN0aW9uIGdldEFjY291bnROdW1iZXIocGFnZTogUGFnZSkge1xuICBjb25zdCBzZWxlY3RlZFNuaWZBY2NvdW50ID0gYXdhaXQgcGFnZS4kZXZhbChBQ0NPVU5UU19OVU1CRVIsIChvcHRpb24pID0+IHtcbiAgICByZXR1cm4gKG9wdGlvbiBhcyBIVE1MRWxlbWVudCkuaW5uZXJUZXh0O1xuICB9KTtcblxuICByZXR1cm4gc2VsZWN0ZWRTbmlmQWNjb3VudC5yZXBsYWNlKCcvJywgJ18nKS50cmltKCk7XG59XG5cbmFzeW5jIGZ1bmN0aW9uIGNoZWNrSWZIYXNOZXh0UGFnZShwYWdlOiBQYWdlKSB7XG4gIHJldHVybiBlbGVtZW50UHJlc2VudE9uUGFnZShwYWdlLCBORVhUX1BBR0VfTElOSyk7XG59XG5cbmFzeW5jIGZ1bmN0aW9uIG5hdmlnYXRlVG9OZXh0UGFnZShwYWdlOiBQYWdlKSB7XG4gIGF3YWl0IGNsaWNrQnV0dG9uKHBhZ2UsIE5FWFRfUEFHRV9MSU5LKTtcbiAgYXdhaXQgd2FpdEZvck5hdmlnYXRpb24ocGFnZSk7XG59XG5cbi8qIENvdWxkbid0IHJlcHJvZHVjZSBzY2VuYXJpbyB3aXRoIG11bHRpcGxlIHBhZ2VzIG9mIHBlbmRpbmcgdHJhbnNhY3Rpb25zIC0gU2hvdWxkIHN1cHBvcnQgaWYgZXhpc3RzIHN1Y2ggY2FzZS5cbiAgIG5lZWRUb1BhZ2luYXRlIGlzIGZhbHNlIGlmIHNjcmFwaW5nIHBlbmRpbmcgdHJhbnNhY3Rpb25zICovXG5hc3luYyBmdW5jdGlvbiBzY3JhcGVUcmFuc2FjdGlvbnMocGFnZTogUGFnZSwgdGFibGVMb2NhdG9yOiBzdHJpbmcsIHRyYW5zYWN0aW9uU3RhdHVzOiBUcmFuc2FjdGlvblN0YXR1c2VzLCBuZWVkVG9QYWdpbmF0ZTogYm9vbGVhbikge1xuICBjb25zdCB0eG5zID0gW107XG4gIGxldCBoYXNOZXh0UGFnZSA9IGZhbHNlO1xuXG4gIGRvIHtcbiAgICBjb25zdCBjdXJyZW50UGFnZVR4bnMgPSBhd2FpdCBleHRyYWN0VHJhbnNhY3Rpb25zKHBhZ2UsIHRhYmxlTG9jYXRvciwgdHJhbnNhY3Rpb25TdGF0dXMpO1xuICAgIHR4bnMucHVzaCguLi5jdXJyZW50UGFnZVR4bnMpO1xuICAgIGlmIChuZWVkVG9QYWdpbmF0ZSkge1xuICAgICAgaGFzTmV4dFBhZ2UgPSBhd2FpdCBjaGVja0lmSGFzTmV4dFBhZ2UocGFnZSk7XG4gICAgICBpZiAoaGFzTmV4dFBhZ2UpIHtcbiAgICAgICAgYXdhaXQgbmF2aWdhdGVUb05leHRQYWdlKHBhZ2UpO1xuICAgICAgfVxuICAgIH1cbiAgfSB3aGlsZSAoaGFzTmV4dFBhZ2UpO1xuXG4gIHJldHVybiBjb252ZXJ0VHJhbnNhY3Rpb25zKHR4bnMpO1xufVxuXG5hc3luYyBmdW5jdGlvbiBnZXRBY2NvdW50VHJhbnNhY3Rpb25zKHBhZ2U6IFBhZ2UpIHtcbiAgYXdhaXQgUHJvbWlzZS5yYWNlKFtcbiAgICB3YWl0VW50aWxFbGVtZW50Rm91bmQocGFnZSwgJ2RpdltpZCo9XFwnZGl2VGFibGVcXCddJywgZmFsc2UpLFxuICAgIHdhaXRVbnRpbEVsZW1lbnRGb3VuZChwYWdlLCBgLiR7RVJST1JfTUVTU0FHRV9DTEFTU31gLCBmYWxzZSksXG4gIF0pO1xuXG4gIGNvbnN0IG5vVHJhbnNhY3Rpb25JblJhbmdlRXJyb3IgPSBhd2FpdCBpc05vVHJhbnNhY3Rpb25JbkRhdGVSYW5nZUVycm9yKHBhZ2UpO1xuICBpZiAobm9UcmFuc2FjdGlvbkluUmFuZ2VFcnJvcikge1xuICAgIHJldHVybiBbXTtcbiAgfVxuXG4gIGNvbnN0IHBlbmRpbmdUeG5zID0gYXdhaXQgc2NyYXBlVHJhbnNhY3Rpb25zKHBhZ2UsIFBFTkRJTkdfVFJBTlNBQ1RJT05TX1RBQkxFLFxuICAgIFRyYW5zYWN0aW9uU3RhdHVzZXMuUGVuZGluZywgZmFsc2UpO1xuICBjb25zdCBjb21wbGV0ZWRUeG5zID0gYXdhaXQgc2NyYXBlVHJhbnNhY3Rpb25zKHBhZ2UsIENPTVBMRVRFRF9UUkFOU0FDVElPTlNfVEFCTEUsXG4gICAgVHJhbnNhY3Rpb25TdGF0dXNlcy5Db21wbGV0ZWQsIHRydWUpO1xuICBjb25zdCB0eG5zID0gW1xuICAgIC4uLnBlbmRpbmdUeG5zLFxuICAgIC4uLmNvbXBsZXRlZFR4bnMsXG4gIF07XG4gIHJldHVybiB0eG5zO1xufVxuXG5hc3luYyBmdW5jdGlvbiBnZXRDdXJyZW50QmFsYW5jZShwYWdlOiBQYWdlKSB7XG4gIGNvbnN0IGJhbGFuY2VFbGVtZW50ID0gYXdhaXQgcGFnZS4kKENVUlJFTlRfQkFMQU5DRSk7XG4gIGlmICghYmFsYW5jZUVsZW1lbnQpIHtcbiAgICByZXR1cm4gdW5kZWZpbmVkO1xuICB9XG4gIGNvbnN0IGJhbGFuY2VTdHIgPSBhd2FpdCBiYWxhbmNlRWxlbWVudC5ldmFsdWF0ZSgob3B0aW9uKSA9PiB7XG4gICAgcmV0dXJuIChvcHRpb24gYXMgSFRNTEVsZW1lbnQpLmlubmVyVGV4dDtcbiAgfSk7XG4gIHJldHVybiBnZXRBbW91bnREYXRhKGJhbGFuY2VTdHIpO1xufVxuXG5leHBvcnQgYXN5bmMgZnVuY3Rpb24gd2FpdEZvclBvc3RMb2dpbihwYWdlOiBQYWdlKSB7XG4gIHJldHVybiBQcm9taXNlLnJhY2UoW1xuICAgIHdhaXRVbnRpbEVsZW1lbnRGb3VuZChwYWdlLCAnI21hdGFmTG9nb3V0TGluaycsIHRydWUpLFxuICAgIHdhaXRVbnRpbEVsZW1lbnRGb3VuZChwYWdlLCAnI3ZhbGlkYXRpb25Nc2cnLCB0cnVlKSxcbiAgXSk7XG59XG5cbmFzeW5jIGZ1bmN0aW9uIGZldGNoQWNjb3VudERhdGEocGFnZTogUGFnZSwgc3RhcnREYXRlOiBNb21lbnQpIHtcbiAgYXdhaXQgc2VhcmNoQnlEYXRlcyhwYWdlLCBzdGFydERhdGUpO1xuICBjb25zdCBhY2NvdW50TnVtYmVyID0gYXdhaXQgZ2V0QWNjb3VudE51bWJlcihwYWdlKTtcbiAgY29uc3QgYmFsYW5jZSA9IGF3YWl0IGdldEN1cnJlbnRCYWxhbmNlKHBhZ2UpO1xuICBjb25zdCB0eG5zID0gYXdhaXQgZ2V0QWNjb3VudFRyYW5zYWN0aW9ucyhwYWdlKTtcblxuICByZXR1cm4ge1xuICAgIGFjY291bnROdW1iZXIsXG4gICAgdHhucyxcbiAgICBiYWxhbmNlLFxuICB9O1xufVxuXG5hc3luYyBmdW5jdGlvbiBnZXRBY2NvdW50SWRzQnlTZWxlY3RvcihwYWdlOiBQYWdlKTogUHJvbWlzZTxzdHJpbmdbXT4ge1xuICBjb25zdCBhY2NvdW50c0lkcyA9IGF3YWl0IHBhZ2UuZXZhbHVhdGUoKCkgPT4ge1xuICAgIGNvbnN0IHNlbGVjdEVsZW1lbnQgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnYWNjb3VudF9udW1fc2VsZWN0Jyk7XG4gICAgY29uc3Qgb3B0aW9ucyA9IHNlbGVjdEVsZW1lbnQgPyBzZWxlY3RFbGVtZW50LnF1ZXJ5U2VsZWN0b3JBbGwoJ29wdGlvbicpIDogW107XG4gICAgaWYgKCFvcHRpb25zKSByZXR1cm4gW107XG4gICAgcmV0dXJuIEFycmF5LmZyb20ob3B0aW9ucywgKG9wdGlvbikgPT4gb3B0aW9uLnZhbHVlKTtcbiAgfSk7XG4gIHJldHVybiBhY2NvdW50c0lkcztcbn1cblxuYXN5bmMgZnVuY3Rpb24gZmV0Y2hBY2NvdW50cyhwYWdlOiBQYWdlLCBzdGFydERhdGU6IE1vbWVudCkge1xuICBjb25zdCBhY2NvdW50czogVHJhbnNhY3Rpb25zQWNjb3VudFtdID0gW107XG4gIGNvbnN0IGFjY291bnRzSWRzID0gYXdhaXQgZ2V0QWNjb3VudElkc0J5U2VsZWN0b3IocGFnZSk7XG4gIGlmIChhY2NvdW50c0lkcy5sZW5ndGggPD0gMSkge1xuICAgIGNvbnN0IGFjY291bnREYXRhID0gYXdhaXQgZmV0Y2hBY2NvdW50RGF0YShwYWdlLCBzdGFydERhdGUpO1xuICAgIGFjY291bnRzLnB1c2goYWNjb3VudERhdGEpO1xuICB9IGVsc2Uge1xuICAgIGZvciAoY29uc3QgYWNjb3VudElkIG9mIGFjY291bnRzSWRzKSB7XG4gICAgICBhd2FpdCBwYWdlLnNlbGVjdCgnI2FjY291bnRfbnVtX3NlbGVjdCcsIGFjY291bnRJZCk7XG4gICAgICBhd2FpdCB3YWl0VW50aWxFbGVtZW50Rm91bmQocGFnZSwgJyNhY2NvdW50X251bV9zZWxlY3QnLCB0cnVlKTtcbiAgICAgIGNvbnN0IGFjY291bnREYXRhID0gYXdhaXQgZmV0Y2hBY2NvdW50RGF0YShwYWdlLCBzdGFydERhdGUpO1xuICAgICAgYWNjb3VudHMucHVzaChhY2NvdW50RGF0YSk7XG4gICAgfVxuICB9XG4gIHJldHVybiBhY2NvdW50cztcbn1cblxudHlwZSBTY3JhcGVyU3BlY2lmaWNDcmVkZW50aWFscyA9IHsgdXNlcm5hbWU6IHN0cmluZywgcGFzc3dvcmQ6IHN0cmluZyB9O1xuXG5jbGFzcyBCZWlubGV1bWlHcm91cEJhc2VTY3JhcGVyIGV4dGVuZHMgQmFzZVNjcmFwZXJXaXRoQnJvd3NlcjxTY3JhcGVyU3BlY2lmaWNDcmVkZW50aWFscz4ge1xuICBCQVNFX1VSTCA9ICcnO1xuXG4gIExPR0lOX1VSTCA9ICcnO1xuXG4gIFRSQU5TQUNUSU9OU19VUkwgPSAnJztcblxuICBnZXRMb2dpbk9wdGlvbnMoY3JlZGVudGlhbHM6IFNjcmFwZXJTcGVjaWZpY0NyZWRlbnRpYWxzKSB7XG4gICAgcmV0dXJuIHtcbiAgICAgIGxvZ2luVXJsOiBgJHt0aGlzLkxPR0lOX1VSTH1gLFxuICAgICAgZmllbGRzOiBjcmVhdGVMb2dpbkZpZWxkcyhjcmVkZW50aWFscyksXG4gICAgICBzdWJtaXRCdXR0b25TZWxlY3RvcjogJyNjb250aW51ZUJ0bicsXG4gICAgICBwb3N0QWN0aW9uOiBhc3luYyAoKSA9PiB3YWl0Rm9yUG9zdExvZ2luKHRoaXMucGFnZSksXG4gICAgICBwb3NzaWJsZVJlc3VsdHM6IGdldFBvc3NpYmxlTG9naW5SZXN1bHRzKCksXG4gICAgICAvLyBIQUNLOiBGb3Igc29tZSByZWFzb24sIHRob3VnaCB0aGUgbG9naW4gYnV0dG9uICgjY29udGludWVCdG4pIGlzIHByZXNlbnQgYW5kIHZpc2libGUsIHRoZSBjbGljayBhY3Rpb24gZG9lcyBub3QgcGVyZm9ybS5cbiAgICAgIC8vIEFkZGluZyB0aGlzIGRlbGF5IGZpeGVzIHRoZSBpc3N1ZS5cbiAgICAgIHByZUFjdGlvbjogYXN5bmMgKCkgPT4ge1xuICAgICAgICBhd2FpdCBzbGVlcCgxMDAwKTtcbiAgICAgIH0sXG4gICAgfTtcbiAgfVxuXG4gIGFzeW5jIGZldGNoRGF0YSgpIHtcbiAgICBjb25zdCBkZWZhdWx0U3RhcnRNb21lbnQgPSBtb21lbnQoKS5zdWJ0cmFjdCgxLCAneWVhcnMnKS5hZGQoMSwgJ2RheScpO1xuICAgIGNvbnN0IHN0YXJ0RGF0ZSA9IHRoaXMub3B0aW9ucy5zdGFydERhdGUgfHwgZGVmYXVsdFN0YXJ0TW9tZW50LnRvRGF0ZSgpO1xuICAgIGNvbnN0IHN0YXJ0TW9tZW50ID0gbW9tZW50Lm1heChkZWZhdWx0U3RhcnRNb21lbnQsIG1vbWVudChzdGFydERhdGUpKTtcblxuICAgIGF3YWl0IHRoaXMubmF2aWdhdGVUbyh0aGlzLlRSQU5TQUNUSU9OU19VUkwpO1xuXG4gICAgY29uc3QgYWNjb3VudHMgPSBhd2FpdCBmZXRjaEFjY291bnRzKHRoaXMucGFnZSwgc3RhcnRNb21lbnQpO1xuXG4gICAgcmV0dXJuIHtcbiAgICAgIHN1Y2Nlc3M6IHRydWUsXG4gICAgICBhY2NvdW50cyxcbiAgICB9O1xuICB9XG59XG5cbmV4cG9ydCBkZWZhdWx0IEJlaW5sZXVtaUdyb3VwQmFzZVNjcmFwZXI7XG4iXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7Ozs7Ozs7QUFBQSxJQUFBQSxPQUFBLEdBQUFDLHNCQUFBLENBQUFDLE9BQUE7QUFFQSxJQUFBQyxVQUFBLEdBQUFELE9BQUE7QUFDQSxJQUFBRSxxQkFBQSxHQUFBRixPQUFBO0FBT0EsSUFBQUcsV0FBQSxHQUFBSCxPQUFBO0FBQ0EsSUFBQUksUUFBQSxHQUFBSixPQUFBO0FBQ0EsSUFBQUssYUFBQSxHQUFBTCxPQUFBO0FBS0EsSUFBQU0sdUJBQUEsR0FBQU4sT0FBQTtBQUE4RyxTQUFBRCx1QkFBQVEsQ0FBQSxXQUFBQSxDQUFBLElBQUFBLENBQUEsQ0FBQUMsVUFBQSxHQUFBRCxDQUFBLEtBQUFFLE9BQUEsRUFBQUYsQ0FBQTtBQUFBLFNBQUFHLGdCQUFBSCxDQUFBLEVBQUFJLENBQUEsRUFBQUMsQ0FBQSxZQUFBRCxDQUFBLEdBQUFFLGNBQUEsQ0FBQUYsQ0FBQSxNQUFBSixDQUFBLEdBQUFPLE1BQUEsQ0FBQUMsY0FBQSxDQUFBUixDQUFBLEVBQUFJLENBQUEsSUFBQUssS0FBQSxFQUFBSixDQUFBLEVBQUFLLFVBQUEsTUFBQUMsWUFBQSxNQUFBQyxRQUFBLFVBQUFaLENBQUEsQ0FBQUksQ0FBQSxJQUFBQyxDQUFBLEVBQUFMLENBQUE7QUFBQSxTQUFBTSxlQUFBRCxDQUFBLFFBQUFRLENBQUEsR0FBQUMsWUFBQSxDQUFBVCxDQUFBLHVDQUFBUSxDQUFBLEdBQUFBLENBQUEsR0FBQUEsQ0FBQTtBQUFBLFNBQUFDLGFBQUFULENBQUEsRUFBQUQsQ0FBQSwyQkFBQUMsQ0FBQSxLQUFBQSxDQUFBLFNBQUFBLENBQUEsTUFBQUwsQ0FBQSxHQUFBSyxDQUFBLENBQUFVLE1BQUEsQ0FBQUMsV0FBQSxrQkFBQWhCLENBQUEsUUFBQWEsQ0FBQSxHQUFBYixDQUFBLENBQUFpQixJQUFBLENBQUFaLENBQUEsRUFBQUQsQ0FBQSx1Q0FBQVMsQ0FBQSxTQUFBQSxDQUFBLFlBQUFLLFNBQUEseUVBQUFkLENBQUEsR0FBQWUsTUFBQSxHQUFBQyxNQUFBLEVBQUFmLENBQUE7QUFFOUcsTUFBTWdCLFdBQVcsR0FBRyxZQUFZO0FBQ2hDLE1BQU1DLGlDQUFpQyxHQUFHLDhCQUE4QjtBQUN4RSxNQUFNQywyQkFBMkIsR0FBRyxZQUFZO0FBQ2hELE1BQU1DLHlCQUF5QixHQUFHLFlBQVk7QUFDOUMsTUFBTUMsa0NBQWtDLEdBQUcsdUJBQXVCO0FBQ2xFLE1BQU1DLGdDQUFnQyxHQUFHLHFCQUFxQjtBQUM5RCxNQUFNQyxzQkFBc0IsR0FBRyxTQUFTO0FBQ3hDLE1BQU1DLGtCQUFrQixHQUFHLE9BQU87QUFDbEMsTUFBTUMsbUJBQW1CLEdBQUcsUUFBUTtBQUNwQyxNQUFNQyxtQkFBbUIsR0FBRyxTQUFTO0FBQ3JDLE1BQU1DLGVBQWUsR0FBRywrQkFBK0I7QUFDdkQsTUFBTUMsa0NBQWtDLEdBQUcscUJBQXFCO0FBQ2hFLE1BQU1DLGlDQUFpQyxHQUFHLEtBQUs7QUFDL0MsTUFBTUMsNEJBQTRCLEdBQUcsb0JBQW9CO0FBQ3pELE1BQU1DLDBCQUEwQixHQUFHLG9CQUFvQjtBQUN2RCxNQUFNQyxjQUFjLEdBQUcsZ0JBQWdCO0FBQ3ZDLE1BQU1DLGVBQWUsR0FBRyxlQUFlO0FBZ0JoQyxTQUFTQyx1QkFBdUJBLENBQUEsRUFBeUI7RUFDOUQsTUFBTUMsSUFBMEIsR0FBRyxDQUFDLENBQUM7RUFDckNBLElBQUksQ0FBQ0Msb0NBQVksQ0FBQ0MsT0FBTyxDQUFDLEdBQUcsQ0FBQyxrQkFBa0IsQ0FBQztFQUNqREYsSUFBSSxDQUFDQyxvQ0FBWSxDQUFDRSxlQUFlLENBQUMsR0FBRyxDQUFDLG9DQUFvQyxDQUFDO0VBQzNFLE9BQU9ILElBQUk7QUFDYjtBQUVPLFNBQVNJLGlCQUFpQkEsQ0FBQ0MsV0FBdUMsRUFBRTtFQUN6RSxPQUFPLENBQ0w7SUFBRUMsUUFBUSxFQUFFLFdBQVc7SUFBRXBDLEtBQUssRUFBRW1DLFdBQVcsQ0FBQ0U7RUFBUyxDQUFDLEVBQ3REO0lBQUVELFFBQVEsRUFBRSxXQUFXO0lBQUVwQyxLQUFLLEVBQUVtQyxXQUFXLENBQUNHO0VBQVMsQ0FBQyxDQUN2RDtBQUNIO0FBRUEsU0FBU0MsYUFBYUEsQ0FBQ0MsU0FBaUIsRUFBRTtFQUN4QyxJQUFJQyxhQUFhLEdBQUdELFNBQVMsQ0FBQ0UsT0FBTyxDQUFDQyxpQ0FBc0IsRUFBRSxFQUFFLENBQUM7RUFDakVGLGFBQWEsR0FBR0EsYUFBYSxDQUFDRyxVQUFVLENBQUMsR0FBRyxFQUFFLEVBQUUsQ0FBQztFQUNqRCxPQUFPQyxVQUFVLENBQUNKLGFBQWEsQ0FBQztBQUNsQztBQUVBLFNBQVNLLFlBQVlBLENBQUNDLEdBQXVCLEVBQUU7RUFDN0MsTUFBTUMsTUFBTSxHQUFHVCxhQUFhLENBQUNRLEdBQUcsQ0FBQ0MsTUFBTSxDQUFDO0VBQ3hDLE1BQU1DLEtBQUssR0FBR1YsYUFBYSxDQUFDUSxHQUFHLENBQUNFLEtBQUssQ0FBQztFQUN0QyxPQUFPLENBQUN0QyxNQUFNLENBQUN1QyxLQUFLLENBQUNGLE1BQU0sQ0FBQyxHQUFHLENBQUMsR0FBR0EsTUFBTSxLQUFLckMsTUFBTSxDQUFDdUMsS0FBSyxDQUFDRCxLQUFLLENBQUMsR0FBRyxDQUFDLEdBQUdBLEtBQUssQ0FBQztBQUNoRjtBQUVBLFNBQVNFLG1CQUFtQkEsQ0FBQ0MsSUFBMEIsRUFBaUI7RUFDdEUsT0FBT0EsSUFBSSxDQUFDQyxHQUFHLENBQUVOLEdBQUcsSUFBa0I7SUFDcEMsTUFBTU8sYUFBYSxHQUFHLElBQUFDLGVBQU0sRUFBQ1IsR0FBRyxDQUFDUyxJQUFJLEVBQUU1QyxXQUFXLENBQUMsQ0FBQzZDLFdBQVcsQ0FBQyxDQUFDO0lBQ2pFLE1BQU1DLGVBQWUsR0FBR1osWUFBWSxDQUFDQyxHQUFHLENBQUM7SUFDekMsT0FBTztNQUNMWSxJQUFJLEVBQUVDLDhCQUFnQixDQUFDQyxNQUFNO01BQzdCQyxVQUFVLEVBQUVmLEdBQUcsQ0FBQ2dCLFNBQVMsR0FBR0MsUUFBUSxDQUFDakIsR0FBRyxDQUFDZ0IsU0FBUyxFQUFFLEVBQUUsQ0FBQyxHQUFHRSxTQUFTO01BQ25FVCxJQUFJLEVBQUVGLGFBQWE7TUFDbkJZLGFBQWEsRUFBRVosYUFBYTtNQUM1QmEsY0FBYyxFQUFFVCxlQUFlO01BQy9CVSxnQkFBZ0IsRUFBRUMsMEJBQWU7TUFDakNDLGFBQWEsRUFBRVosZUFBZTtNQUM5QmEsTUFBTSxFQUFFeEIsR0FBRyxDQUFDd0IsTUFBTTtNQUNsQkMsV0FBVyxFQUFFekIsR0FBRyxDQUFDeUIsV0FBVztNQUM1QkMsSUFBSSxFQUFFMUIsR0FBRyxDQUFDMEI7SUFDWixDQUFDO0VBQ0gsQ0FBQyxDQUFDO0FBQ0o7QUFFQSxTQUFTQyxrQkFBa0JBLENBQUNDLEdBQXNCLEVBQUVDLGVBQXVCLEVBQUVDLHFCQUE0QyxFQUFFO0VBQ3pILElBQUlELGVBQWUsS0FBSyxXQUFXLEVBQUU7SUFDbkMsT0FBTyxDQUFDRCxHQUFHLENBQUNFLHFCQUFxQixDQUFDL0QsMkJBQTJCLENBQUMsQ0FBQyxJQUFJLEVBQUUsRUFBRWdFLElBQUksQ0FBQyxDQUFDO0VBQy9FO0VBQ0EsT0FBTyxDQUFDSCxHQUFHLENBQUNFLHFCQUFxQixDQUFDOUQseUJBQXlCLENBQUMsQ0FBQyxJQUFJLEVBQUUsRUFBRStELElBQUksQ0FBQyxDQUFDO0FBQzdFO0FBRUEsU0FBU0MseUJBQXlCQSxDQUFDSixHQUFzQixFQUFFQyxlQUF1QixFQUFFQyxxQkFBNEMsRUFBRTtFQUNoSSxJQUFJRCxlQUFlLEtBQUssV0FBVyxFQUFFO0lBQ25DLE9BQU8sQ0FBQ0QsR0FBRyxDQUFDRSxxQkFBcUIsQ0FBQzdELGtDQUFrQyxDQUFDLENBQUMsSUFBSSxFQUFFLEVBQUU4RCxJQUFJLENBQUMsQ0FBQztFQUN0RjtFQUNBLE9BQU8sQ0FBQ0gsR0FBRyxDQUFDRSxxQkFBcUIsQ0FBQzVELGdDQUFnQyxDQUFDLENBQUMsSUFBSSxFQUFFLEVBQUU2RCxJQUFJLENBQUMsQ0FBQztBQUNwRjtBQUVBLFNBQVNFLHVCQUF1QkEsQ0FBQ0wsR0FBc0IsRUFBRUUscUJBQTRDLEVBQUU7RUFDckcsT0FBTyxDQUFDRixHQUFHLENBQUNFLHFCQUFxQixDQUFDM0Qsc0JBQXNCLENBQUMsQ0FBQyxJQUFJLEVBQUUsRUFBRTRELElBQUksQ0FBQyxDQUFDO0FBQzFFO0FBRUEsU0FBU0csbUJBQW1CQSxDQUFDTixHQUFzQixFQUFFRSxxQkFBNEMsRUFBRTtFQUNqRyxPQUFPLENBQUNGLEdBQUcsQ0FBQ0UscUJBQXFCLENBQUMxRCxrQkFBa0IsQ0FBQyxDQUFDLElBQUksRUFBRSxFQUFFMkQsSUFBSSxDQUFDLENBQUM7QUFDdEU7QUFFQSxTQUFTSSxvQkFBb0JBLENBQUNQLEdBQXNCLEVBQUVFLHFCQUE0QyxFQUFFO0VBQ2xHLE9BQU8sQ0FBQ0YsR0FBRyxDQUFDRSxxQkFBcUIsQ0FBQ3pELG1CQUFtQixDQUFDLENBQUMsSUFBSSxFQUFFLEVBQUUwRCxJQUFJLENBQUMsQ0FBQztBQUN2RTtBQUVBLFNBQVNLLHlCQUF5QkEsQ0FBQ0MsTUFBc0IsRUFBRUMsaUJBQXNDLEVBQUVSLHFCQUE0QyxFQUFzQjtFQUNuSyxNQUFNRixHQUFHLEdBQUdTLE1BQU0sQ0FBQ0UsUUFBUTtFQUMzQixNQUFNQyxJQUFJLEdBQUc7SUFDWGhCLE1BQU0sRUFBRWMsaUJBQWlCO0lBQ3pCN0IsSUFBSSxFQUFFa0Isa0JBQWtCLENBQUNDLEdBQUcsRUFBRVUsaUJBQWlCLEVBQUVSLHFCQUFxQixDQUFDO0lBQ3ZFTCxXQUFXLEVBQUVPLHlCQUF5QixDQUFDSixHQUFHLEVBQUVVLGlCQUFpQixFQUFFUixxQkFBcUIsQ0FBQztJQUNyRmQsU0FBUyxFQUFFaUIsdUJBQXVCLENBQUNMLEdBQUcsRUFBRUUscUJBQXFCLENBQUM7SUFDOUQ1QixLQUFLLEVBQUVnQyxtQkFBbUIsQ0FBQ04sR0FBRyxFQUFFRSxxQkFBcUIsQ0FBQztJQUN0RDdCLE1BQU0sRUFBRWtDLG9CQUFvQixDQUFDUCxHQUFHLEVBQUVFLHFCQUFxQjtFQUN6RCxDQUFDO0VBRUQsT0FBT1UsSUFBSTtBQUNiO0FBRUEsZUFBZUMsOEJBQThCQSxDQUFDQyxJQUFVLEVBQUVDLFlBQW9CLEVBQWtDO0VBQzlHLE1BQU1DLE1BQTZCLEdBQUcsQ0FBQyxDQUFDO0VBQ3hDLE1BQU1DLGVBQWUsR0FBRyxNQUFNLElBQUFDLGlDQUFXLEVBQUNKLElBQUksRUFBRSxHQUFHQyxZQUFZLDRCQUE0QixFQUFFLElBQUksRUFBR2YsR0FBRyxJQUFLO0lBQzFHLE9BQU9BLEdBQUcsQ0FBQ3RCLEdBQUcsQ0FBQyxDQUFDeUMsRUFBRSxFQUFFQyxLQUFLLE1BQU07TUFDN0JDLFFBQVEsRUFBRUYsRUFBRSxDQUFDRyxZQUFZLENBQUMsT0FBTyxDQUFDO01BQ2xDRjtJQUNGLENBQUMsQ0FBQyxDQUFDO0VBQ0wsQ0FBQyxDQUFDO0VBRUYsS0FBSyxNQUFNRyxZQUFZLElBQUlOLGVBQWUsRUFBRTtJQUMxQyxJQUFJTSxZQUFZLENBQUNGLFFBQVEsRUFBRTtNQUN6QkwsTUFBTSxDQUFDTyxZQUFZLENBQUNGLFFBQVEsQ0FBQyxHQUFHRSxZQUFZLENBQUNILEtBQUs7SUFDcEQ7RUFDRjtFQUNBLE9BQU9KLE1BQU07QUFDZjtBQUVBLFNBQVNRLGtCQUFrQkEsQ0FBQy9DLElBQTBCLEVBQUVpQyxpQkFBc0MsRUFBRUQsTUFBc0IsRUFBRVAscUJBQTRDLEVBQUU7RUFDcEssTUFBTTlCLEdBQUcsR0FBR29DLHlCQUF5QixDQUFDQyxNQUFNLEVBQUVDLGlCQUFpQixFQUFFUixxQkFBcUIsQ0FBQztFQUN2RixJQUFJOUIsR0FBRyxDQUFDUyxJQUFJLEtBQUssRUFBRSxFQUFFO0lBQ25CSixJQUFJLENBQUNnRCxJQUFJLENBQUNyRCxHQUFHLENBQUM7RUFDaEI7QUFDRjtBQUVBLGVBQWVzRCxtQkFBbUJBLENBQUNaLElBQVUsRUFBRUMsWUFBb0IsRUFBRUwsaUJBQXNDLEVBQUU7RUFDM0csTUFBTWpDLElBQTBCLEdBQUcsRUFBRTtFQUNyQyxNQUFNeUIscUJBQXFCLEdBQUcsTUFBTVcsOEJBQThCLENBQUNDLElBQUksRUFBRUMsWUFBWSxDQUFDO0VBRXRGLE1BQU1ZLGdCQUFnQixHQUFHLE1BQU0sSUFBQVQsaUNBQVcsRUFBbUJKLElBQUksRUFBRSxHQUFHQyxZQUFZLFdBQVcsRUFBRSxFQUFFLEVBQUdhLEdBQUcsSUFBSztJQUMxRyxPQUFPQSxHQUFHLENBQUNsRCxHQUFHLENBQUVtRCxFQUFFLEtBQU07TUFDdEJsQixRQUFRLEVBQUVtQixLQUFLLENBQUNDLElBQUksQ0FBQ0YsRUFBRSxDQUFDRyxvQkFBb0IsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDdEQsR0FBRyxDQUFFeUMsRUFBRSxJQUFLQSxFQUFFLENBQUNjLFNBQVM7SUFDOUUsQ0FBQyxDQUFDLENBQUM7RUFDTCxDQUFDLENBQUM7RUFFRixLQUFLLE1BQU14QixNQUFNLElBQUlrQixnQkFBZ0IsRUFBRTtJQUNyQ0gsa0JBQWtCLENBQUMvQyxJQUFJLEVBQUVpQyxpQkFBaUIsRUFBRUQsTUFBTSxFQUFFUCxxQkFBcUIsQ0FBQztFQUM1RTtFQUNBLE9BQU96QixJQUFJO0FBQ2I7QUFFQSxlQUFleUQsK0JBQStCQSxDQUFDcEIsSUFBVSxFQUFFO0VBQ3pELE1BQU1xQixtQkFBbUIsR0FBRyxNQUFNLElBQUFDLDBDQUFvQixFQUFDdEIsSUFBSSxFQUFFLElBQUlwRSxtQkFBbUIsRUFBRSxDQUFDO0VBQ3ZGLElBQUl5RixtQkFBbUIsRUFBRTtJQUN2QixNQUFNRSxTQUFTLEdBQUcsTUFBTXZCLElBQUksQ0FBQ3dCLEtBQUssQ0FBQyxJQUFJNUYsbUJBQW1CLEVBQUUsRUFBRzZGLFlBQVksSUFBSztNQUM5RSxPQUFRQSxZQUFZLENBQWlCTixTQUFTO0lBQ2hELENBQUMsQ0FBQztJQUNGLE9BQU9JLFNBQVMsQ0FBQ2xDLElBQUksQ0FBQyxDQUFDLEtBQUtqRSxpQ0FBaUM7RUFDL0Q7RUFDQSxPQUFPLEtBQUs7QUFDZDtBQUVBLGVBQWVzRyxhQUFhQSxDQUFDMUIsSUFBVSxFQUFFMkIsU0FBaUIsRUFBRTtFQUMxRCxNQUFNLElBQUFDLGlDQUFXLEVBQUM1QixJQUFJLEVBQUUsY0FBYyxDQUFDO0VBQ3ZDLE1BQU0sSUFBQTZCLDJDQUFxQixFQUFDN0IsSUFBSSxFQUFFLGdCQUFnQixDQUFDO0VBQ25ELE1BQU0sSUFBQThCLCtCQUFTLEVBQ2I5QixJQUFJLEVBQ0osZ0JBQWdCLEVBQ2hCMkIsU0FBUyxDQUFDSSxNQUFNLENBQUM1RyxXQUFXLENBQzlCLENBQUM7RUFDRCxNQUFNLElBQUF5RyxpQ0FBVyxFQUFDNUIsSUFBSSxFQUFFLGlCQUFpQmxFLGtDQUFrQyxHQUFHLENBQUM7RUFDL0UsTUFBTSxJQUFBOEYsaUNBQVcsRUFBQzVCLElBQUksRUFBRSxlQUFlakUsaUNBQWlDLEdBQUcsQ0FBQztFQUM1RSxNQUFNLElBQUFpRyw2QkFBaUIsRUFBQ2hDLElBQUksQ0FBQztBQUMvQjtBQUVBLGVBQWVpQyxnQkFBZ0JBLENBQUNqQyxJQUFVLEVBQUU7RUFDMUMsTUFBTWtDLG1CQUFtQixHQUFHLE1BQU1sQyxJQUFJLENBQUN3QixLQUFLLENBQUMzRixlQUFlLEVBQUdzRyxNQUFNLElBQUs7SUFDeEUsT0FBUUEsTUFBTSxDQUFpQmhCLFNBQVM7RUFDMUMsQ0FBQyxDQUFDO0VBRUYsT0FBT2UsbUJBQW1CLENBQUNqRixPQUFPLENBQUMsR0FBRyxFQUFFLEdBQUcsQ0FBQyxDQUFDb0MsSUFBSSxDQUFDLENBQUM7QUFDckQ7QUFFQSxlQUFlK0Msa0JBQWtCQSxDQUFDcEMsSUFBVSxFQUFFO0VBQzVDLE9BQU8sSUFBQXNCLDBDQUFvQixFQUFDdEIsSUFBSSxFQUFFOUQsY0FBYyxDQUFDO0FBQ25EO0FBRUEsZUFBZW1HLGtCQUFrQkEsQ0FBQ3JDLElBQVUsRUFBRTtFQUM1QyxNQUFNLElBQUE0QixpQ0FBVyxFQUFDNUIsSUFBSSxFQUFFOUQsY0FBYyxDQUFDO0VBQ3ZDLE1BQU0sSUFBQThGLDZCQUFpQixFQUFDaEMsSUFBSSxDQUFDO0FBQy9COztBQUVBO0FBQ0E7QUFDQSxlQUFlc0Msa0JBQWtCQSxDQUFDdEMsSUFBVSxFQUFFQyxZQUFvQixFQUFFTCxpQkFBc0MsRUFBRTJDLGNBQXVCLEVBQUU7RUFDbkksTUFBTTVFLElBQUksR0FBRyxFQUFFO0VBQ2YsSUFBSTZFLFdBQVcsR0FBRyxLQUFLO0VBRXZCLEdBQUc7SUFDRCxNQUFNQyxlQUFlLEdBQUcsTUFBTTdCLG1CQUFtQixDQUFDWixJQUFJLEVBQUVDLFlBQVksRUFBRUwsaUJBQWlCLENBQUM7SUFDeEZqQyxJQUFJLENBQUNnRCxJQUFJLENBQUMsR0FBRzhCLGVBQWUsQ0FBQztJQUM3QixJQUFJRixjQUFjLEVBQUU7TUFDbEJDLFdBQVcsR0FBRyxNQUFNSixrQkFBa0IsQ0FBQ3BDLElBQUksQ0FBQztNQUM1QyxJQUFJd0MsV0FBVyxFQUFFO1FBQ2YsTUFBTUgsa0JBQWtCLENBQUNyQyxJQUFJLENBQUM7TUFDaEM7SUFDRjtFQUNGLENBQUMsUUFBUXdDLFdBQVc7RUFFcEIsT0FBTzlFLG1CQUFtQixDQUFDQyxJQUFJLENBQUM7QUFDbEM7QUFFQSxlQUFlK0Usc0JBQXNCQSxDQUFDMUMsSUFBVSxFQUFFO0VBQ2hELE1BQU0yQyxPQUFPLENBQUNDLElBQUksQ0FBQyxDQUNqQixJQUFBZiwyQ0FBcUIsRUFBQzdCLElBQUksRUFBRSx1QkFBdUIsRUFBRSxLQUFLLENBQUMsRUFDM0QsSUFBQTZCLDJDQUFxQixFQUFDN0IsSUFBSSxFQUFFLElBQUlwRSxtQkFBbUIsRUFBRSxFQUFFLEtBQUssQ0FBQyxDQUM5RCxDQUFDO0VBRUYsTUFBTWlILHlCQUF5QixHQUFHLE1BQU16QiwrQkFBK0IsQ0FBQ3BCLElBQUksQ0FBQztFQUM3RSxJQUFJNkMseUJBQXlCLEVBQUU7SUFDN0IsT0FBTyxFQUFFO0VBQ1g7RUFFQSxNQUFNQyxXQUFXLEdBQUcsTUFBTVIsa0JBQWtCLENBQUN0QyxJQUFJLEVBQUUvRCwwQkFBMEIsRUFDM0U4RyxpQ0FBbUIsQ0FBQ0MsT0FBTyxFQUFFLEtBQUssQ0FBQztFQUNyQyxNQUFNQyxhQUFhLEdBQUcsTUFBTVgsa0JBQWtCLENBQUN0QyxJQUFJLEVBQUVoRSw0QkFBNEIsRUFDL0UrRyxpQ0FBbUIsQ0FBQ0csU0FBUyxFQUFFLElBQUksQ0FBQztFQUN0QyxNQUFNdkYsSUFBSSxHQUFHLENBQ1gsR0FBR21GLFdBQVcsRUFDZCxHQUFHRyxhQUFhLENBQ2pCO0VBQ0QsT0FBT3RGLElBQUk7QUFDYjtBQUVBLGVBQWV3RixpQkFBaUJBLENBQUNuRCxJQUFVLEVBQUU7RUFDM0MsTUFBTW9ELGNBQWMsR0FBRyxNQUFNcEQsSUFBSSxDQUFDcUQsQ0FBQyxDQUFDbEgsZUFBZSxDQUFDO0VBQ3BELElBQUksQ0FBQ2lILGNBQWMsRUFBRTtJQUNuQixPQUFPNUUsU0FBUztFQUNsQjtFQUNBLE1BQU04RSxVQUFVLEdBQUcsTUFBTUYsY0FBYyxDQUFDRyxRQUFRLENBQUVwQixNQUFNLElBQUs7SUFDM0QsT0FBUUEsTUFBTSxDQUFpQmhCLFNBQVM7RUFDMUMsQ0FBQyxDQUFDO0VBQ0YsT0FBT3JFLGFBQWEsQ0FBQ3dHLFVBQVUsQ0FBQztBQUNsQztBQUVPLGVBQWVFLGdCQUFnQkEsQ0FBQ3hELElBQVUsRUFBRTtFQUNqRCxPQUFPMkMsT0FBTyxDQUFDQyxJQUFJLENBQUMsQ0FDbEIsSUFBQWYsMkNBQXFCLEVBQUM3QixJQUFJLEVBQUUsa0JBQWtCLEVBQUUsSUFBSSxDQUFDLEVBQ3JELElBQUE2QiwyQ0FBcUIsRUFBQzdCLElBQUksRUFBRSxnQkFBZ0IsRUFBRSxJQUFJLENBQUMsQ0FDcEQsQ0FBQztBQUNKO0FBRUEsZUFBZXlELGdCQUFnQkEsQ0FBQ3pELElBQVUsRUFBRTJCLFNBQWlCLEVBQUU7RUFDN0QsTUFBTUQsYUFBYSxDQUFDMUIsSUFBSSxFQUFFMkIsU0FBUyxDQUFDO0VBQ3BDLE1BQU0rQixhQUFhLEdBQUcsTUFBTXpCLGdCQUFnQixDQUFDakMsSUFBSSxDQUFDO0VBQ2xELE1BQU0yRCxPQUFPLEdBQUcsTUFBTVIsaUJBQWlCLENBQUNuRCxJQUFJLENBQUM7RUFDN0MsTUFBTXJDLElBQUksR0FBRyxNQUFNK0Usc0JBQXNCLENBQUMxQyxJQUFJLENBQUM7RUFFL0MsT0FBTztJQUNMMEQsYUFBYTtJQUNiL0YsSUFBSTtJQUNKZ0c7RUFDRixDQUFDO0FBQ0g7QUFFQSxlQUFlQyx1QkFBdUJBLENBQUM1RCxJQUFVLEVBQXFCO0VBQ3BFLE1BQU02RCxXQUFXLEdBQUcsTUFBTTdELElBQUksQ0FBQ3VELFFBQVEsQ0FBQyxNQUFNO0lBQzVDLE1BQU1PLGFBQWEsR0FBR0MsUUFBUSxDQUFDQyxjQUFjLENBQUMsb0JBQW9CLENBQUM7SUFDbkUsTUFBTUMsT0FBTyxHQUFHSCxhQUFhLEdBQUdBLGFBQWEsQ0FBQ0ksZ0JBQWdCLENBQUMsUUFBUSxDQUFDLEdBQUcsRUFBRTtJQUM3RSxJQUFJLENBQUNELE9BQU8sRUFBRSxPQUFPLEVBQUU7SUFDdkIsT0FBT2pELEtBQUssQ0FBQ0MsSUFBSSxDQUFDZ0QsT0FBTyxFQUFHOUIsTUFBTSxJQUFLQSxNQUFNLENBQUM1SCxLQUFLLENBQUM7RUFDdEQsQ0FBQyxDQUFDO0VBQ0YsT0FBT3NKLFdBQVc7QUFDcEI7QUFFQSxlQUFlTSxhQUFhQSxDQUFDbkUsSUFBVSxFQUFFMkIsU0FBaUIsRUFBRTtFQUMxRCxNQUFNeUMsUUFBK0IsR0FBRyxFQUFFO0VBQzFDLE1BQU1QLFdBQVcsR0FBRyxNQUFNRCx1QkFBdUIsQ0FBQzVELElBQUksQ0FBQztFQUN2RCxJQUFJNkQsV0FBVyxDQUFDUSxNQUFNLElBQUksQ0FBQyxFQUFFO0lBQzNCLE1BQU1DLFdBQVcsR0FBRyxNQUFNYixnQkFBZ0IsQ0FBQ3pELElBQUksRUFBRTJCLFNBQVMsQ0FBQztJQUMzRHlDLFFBQVEsQ0FBQ3pELElBQUksQ0FBQzJELFdBQVcsQ0FBQztFQUM1QixDQUFDLE1BQU07SUFDTCxLQUFLLE1BQU1DLFNBQVMsSUFBSVYsV0FBVyxFQUFFO01BQ25DLE1BQU03RCxJQUFJLENBQUN3RSxNQUFNLENBQUMscUJBQXFCLEVBQUVELFNBQVMsQ0FBQztNQUNuRCxNQUFNLElBQUExQywyQ0FBcUIsRUFBQzdCLElBQUksRUFBRSxxQkFBcUIsRUFBRSxJQUFJLENBQUM7TUFDOUQsTUFBTXNFLFdBQVcsR0FBRyxNQUFNYixnQkFBZ0IsQ0FBQ3pELElBQUksRUFBRTJCLFNBQVMsQ0FBQztNQUMzRHlDLFFBQVEsQ0FBQ3pELElBQUksQ0FBQzJELFdBQVcsQ0FBQztJQUM1QjtFQUNGO0VBQ0EsT0FBT0YsUUFBUTtBQUNqQjtBQUlBLE1BQU1LLHlCQUF5QixTQUFTQyw4Q0FBc0IsQ0FBNkI7RUFBQUMsWUFBQSxHQUFBQyxJQUFBO0lBQUEsU0FBQUEsSUFBQTtJQUFBM0ssZUFBQSxtQkFDOUUsRUFBRTtJQUFBQSxlQUFBLG9CQUVELEVBQUU7SUFBQUEsZUFBQSwyQkFFSyxFQUFFO0VBQUE7RUFFckI0SyxlQUFlQSxDQUFDbkksV0FBdUMsRUFBRTtJQUN2RCxPQUFPO01BQ0xvSSxRQUFRLEVBQUUsR0FBRyxJQUFJLENBQUNDLFNBQVMsRUFBRTtNQUM3QkMsTUFBTSxFQUFFdkksaUJBQWlCLENBQUNDLFdBQVcsQ0FBQztNQUN0Q3VJLG9CQUFvQixFQUFFLGNBQWM7TUFDcENDLFVBQVUsRUFBRSxNQUFBQSxDQUFBLEtBQVkxQixnQkFBZ0IsQ0FBQyxJQUFJLENBQUN4RCxJQUFJLENBQUM7TUFDbkRtRixlQUFlLEVBQUUvSSx1QkFBdUIsQ0FBQyxDQUFDO01BQzFDO01BQ0E7TUFDQWdKLFNBQVMsRUFBRSxNQUFBQSxDQUFBLEtBQVk7UUFDckIsTUFBTSxJQUFBQyxjQUFLLEVBQUMsSUFBSSxDQUFDO01BQ25CO0lBQ0YsQ0FBQztFQUNIO0VBRUEsTUFBTUMsU0FBU0EsQ0FBQSxFQUFHO0lBQ2hCLE1BQU1DLGtCQUFrQixHQUFHLElBQUF6SCxlQUFNLEVBQUMsQ0FBQyxDQUFDMEgsUUFBUSxDQUFDLENBQUMsRUFBRSxPQUFPLENBQUMsQ0FBQ0MsR0FBRyxDQUFDLENBQUMsRUFBRSxLQUFLLENBQUM7SUFDdEUsTUFBTTlELFNBQVMsR0FBRyxJQUFJLENBQUNzQyxPQUFPLENBQUN0QyxTQUFTLElBQUk0RCxrQkFBa0IsQ0FBQ0csTUFBTSxDQUFDLENBQUM7SUFDdkUsTUFBTUMsV0FBVyxHQUFHN0gsZUFBTSxDQUFDOEgsR0FBRyxDQUFDTCxrQkFBa0IsRUFBRSxJQUFBekgsZUFBTSxFQUFDNkQsU0FBUyxDQUFDLENBQUM7SUFFckUsTUFBTSxJQUFJLENBQUNrRSxVQUFVLENBQUMsSUFBSSxDQUFDQyxnQkFBZ0IsQ0FBQztJQUU1QyxNQUFNMUIsUUFBUSxHQUFHLE1BQU1ELGFBQWEsQ0FBQyxJQUFJLENBQUNuRSxJQUFJLEVBQUUyRixXQUFXLENBQUM7SUFFNUQsT0FBTztNQUNMSSxPQUFPLEVBQUUsSUFBSTtNQUNiM0I7SUFDRixDQUFDO0VBQ0g7QUFDRjtBQUFDLElBQUE0QixRQUFBLEdBQUFDLE9BQUEsQ0FBQWpNLE9BQUEsR0FFY3lLLHlCQUF5QiIsImlnbm9yZUxpc3QiOltdfQ==
|
package/lib/scrapers/mizrahi.js
CHANGED
|
@@ -170,9 +170,12 @@ class MizrahiScraper extends _baseScraperWithBrowser.BaseScraperWithBrowser {
|
|
|
170
170
|
await this.page.$eval(`a[href*="${OSH_PAGE}"]`, el => el.click());
|
|
171
171
|
await (0, _elementsInteractions.waitUntilElementFound)(this.page, `a[href*="${TRANSACTIONS_PAGE}"]`);
|
|
172
172
|
await this.page.$eval(`a[href*="${TRANSACTIONS_PAGE}"]`, el => el.click());
|
|
173
|
-
const accountNumberElement = await this.page.$('#dropdownBasic b');
|
|
173
|
+
const accountNumberElement = await this.page.$('#dropdownBasic b span');
|
|
174
174
|
const accountNumberHandle = await (accountNumberElement === null || accountNumberElement === void 0 ? void 0 : accountNumberElement.getProperty('title'));
|
|
175
175
|
const accountNumber = await (accountNumberHandle === null || accountNumberHandle === void 0 ? void 0 : accountNumberHandle.jsonValue());
|
|
176
|
+
if (!accountNumber) {
|
|
177
|
+
throw new Error('Account number not found');
|
|
178
|
+
}
|
|
176
179
|
const response = await Promise.any(TRANSACTIONS_REQUEST_URLS.map(async url => {
|
|
177
180
|
const request = await this.page.waitForRequest(url);
|
|
178
181
|
const data = createDataFromRequest(request, this.options.startDate);
|
|
@@ -198,4 +201,4 @@ class MizrahiScraper extends _baseScraperWithBrowser.BaseScraperWithBrowser {
|
|
|
198
201
|
}
|
|
199
202
|
}
|
|
200
203
|
var _default = exports.default = MizrahiScraper;
|
|
201
|
-
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJfbW9tZW50IiwiX2ludGVyb3BSZXF1aXJlRGVmYXVsdCIsInJlcXVpcmUiLCJfY29uc3RhbnRzIiwiX2VsZW1lbnRzSW50ZXJhY3Rpb25zIiwiX2ZldGNoIiwiX25hdmlnYXRpb24iLCJfdHJhbnNhY3Rpb25zIiwiX2Jhc2VTY3JhcGVyV2l0aEJyb3dzZXIiLCJfZXJyb3JzIiwiZSIsIl9fZXNNb2R1bGUiLCJkZWZhdWx0IiwiQkFTRV9XRUJTSVRFX1VSTCIsIkxPR0lOX1VSTCIsIkJBU0VfQVBQX1VSTCIsIkFGVEVSX0xPR0lOX0JBU0VfVVJMIiwiT1NIX1BBR0UiLCJUUkFOU0FDVElPTlNfUEFHRSIsIlRSQU5TQUNUSU9OU19SRVFVRVNUX1VSTFMiLCJQRU5ESU5HX1RSQU5TQUNUSU9OU19QQUdFIiwiUEVORElOR19UUkFOU0FDVElPTlNfSUZSQU1FIiwiQ0hBTkdFX1BBU1NXT1JEX1VSTCIsIkRBVEVfRk9STUFUIiwiTUFYX1JPV1NfUEVSX1JFUVVFU1QiLCJ1c2VybmFtZVNlbGVjdG9yIiwicGFzc3dvcmRTZWxlY3RvciIsInN1Ym1pdEJ1dHRvblNlbGVjdG9yIiwiaW52YWxpZFBhc3N3b3JkU2VsZWN0b3IiLCJhZnRlckxvZ2luU2VsZWN0b3IiLCJsb2dpblNwaW5uZXJTZWxlY3RvciIsImFjY291bnREcm9wRG93bkl0ZW1TZWxlY3RvciIsInBlbmRpbmdUcnhJZGVudGlmaWVySWQiLCJjaGVja2luZ0FjY291bnRUYWJIZWJyZXdOYW1lIiwiY2hlY2tpbmdBY2NvdW50VGFiRW5nbGlzaE5hbWUiLCJjcmVhdGVMb2dpbkZpZWxkcyIsImNyZWRlbnRpYWxzIiwic2VsZWN0b3IiLCJ2YWx1ZSIsInVzZXJuYW1lIiwicGFzc3dvcmQiLCJpc0xvZ2dlZEluIiwib3B0aW9ucyIsInBhZ2UiLCJvc2hYUGF0aCIsIm9zaFRhYiIsIiQkIiwibGVuZ3RoIiwiZ2V0UG9zc2libGVMb2dpblJlc3VsdHMiLCJMb2dpblJlc3VsdHMiLCJTdWNjZXNzIiwiSW52YWxpZFBhc3N3b3JkIiwiJCIsIkNoYW5nZVBhc3N3b3JkIiwiZ2V0U3RhcnRNb21lbnQiLCJvcHRpb25zU3RhcnREYXRlIiwiZGVmYXVsdFN0YXJ0TW9tZW50IiwibW9tZW50Iiwic3VidHJhY3QiLCJzdGFydERhdGUiLCJ0b0RhdGUiLCJtYXgiLCJjcmVhdGVEYXRhRnJvbVJlcXVlc3QiLCJyZXF1ZXN0IiwiZGF0YSIsIkpTT04iLCJwYXJzZSIsInBvc3REYXRhIiwiaW5Gcm9tRGF0ZSIsImZvcm1hdCIsImluVG9EYXRlIiwidGFibGUiLCJtYXhSb3ciLCJjcmVhdGVIZWFkZXJzRnJvbVJlcXVlc3QiLCJoZWFkZXJzIiwibWl6cmFoaXhzcmZ0b2tlbiIsImNvbnZlcnRUcmFuc2FjdGlvbnMiLCJ0eG5zIiwibWFwIiwicm93IiwidHhuRGF0ZSIsIk1DMDJQZXVsYVRhYUVaIiwiSFRNTDVfRk1UIiwiREFURVRJTUVfTE9DQUxfU0VDT05EUyIsInRvSVNPU3RyaW5nIiwidHlwZSIsIlRyYW5zYWN0aW9uVHlwZXMiLCJOb3JtYWwiLCJpZGVudGlmaWVyIiwiTUMwMkFzbWFodGFNZWtvcml0RVoiLCJwYXJzZUludCIsInVuZGVmaW5lZCIsImRhdGUiLCJwcm9jZXNzZWREYXRlIiwib3JpZ2luYWxBbW91bnQiLCJNQzAyU2NodW1FWiIsIm9yaWdpbmFsQ3VycmVuY3kiLCJTSEVLRUxfQ1VSUkVOQ1kiLCJjaGFyZ2VkQW1vdW50IiwiZGVzY3JpcHRpb24iLCJNQzAyVG51YVRldXJFWiIsInN0YXR1cyIsIlRyYW5zYWN0aW9uU3RhdHVzZXMiLCJDb21wbGV0ZWQiLCJleHRyYWN0UGVuZGluZ1RyYW5zYWN0aW9ucyIsInBlbmRpbmdUeG4iLCJwYWdlRXZhbEFsbCIsInRycyIsInRyIiwiQXJyYXkiLCJmcm9tIiwicXVlcnlTZWxlY3RvckFsbCIsInRkIiwidGV4dENvbnRlbnQiLCJ0eG4iLCJhbW91bnQiLCJQZW5kaW5nIiwicG9zdExvZ2luIiwiUHJvbWlzZSIsInJhY2UiLCJ3YWl0VW50aWxFbGVtZW50Rm91bmQiLCJ3YWl0Rm9yVXJsIiwiTWl6cmFoaVNjcmFwZXIiLCJCYXNlU2NyYXBlcldpdGhCcm93c2VyIiwiZ2V0TG9naW5PcHRpb25zIiwibG9naW5VcmwiLCJmaWVsZHMiLCJjaGVja1JlYWRpbmVzcyIsIndhaXRVbnRpbEVsZW1lbnREaXNhcHBlYXIiLCJwb3N0QWN0aW9uIiwicG9zc2libGVSZXN1bHRzIiwiZmV0Y2hEYXRhIiwiJGV2YWwiLCJlbCIsImNsaWNrIiwibnVtT2ZBY2NvdW50cyIsInJlc3VsdHMiLCJpIiwicHVzaCIsImZldGNoQWNjb3VudCIsInN1Y2Nlc3MiLCJhY2NvdW50cyIsImVycm9yVHlwZSIsIlNjcmFwZXJFcnJvclR5cGVzIiwiR2VuZXJpYyIsImVycm9yTWVzc2FnZSIsIm1lc3NhZ2UiLCJnZXRQZW5kaW5nVHJhbnNhY3Rpb25zIiwiZnJhbWUiLCJ3YWl0VW50aWxJZnJhbWVGb3VuZCIsImYiLCJ1cmwiLCJpbmNsdWRlcyIsImlzUGVuZGluZyIsInRoZW4iLCJjYXRjaCIsIl9yZXNwb25zZSRib2R5JGZpZWxkcyIsIndhaXRGb3JTZWxlY3RvciIsImFjY291bnROdW1iZXJFbGVtZW50IiwiYWNjb3VudE51bWJlckhhbmRsZSIsImdldFByb3BlcnR5IiwiYWNjb3VudE51bWJlciIsImpzb25WYWx1ZSIsInJlc3BvbnNlIiwiYW55Iiwid2FpdEZvclJlcXVlc3QiLCJmZXRjaFBvc3RXaXRoaW5QYWdlIiwiaGVhZGVyIiwiRXJyb3IiLCJtZXNzYWdlcyIsInRleHQiLCJyZWxldmFudFJvd3MiLCJib2R5Iiwicm93cyIsImZpbHRlciIsIlJlY1R5cGVTcGVjaWZpZWQiLCJvc2hUeG4iLCJzdGFydE1vbWVudCIsIm9zaFR4bkFmdGVyU3RhcnREYXRlIiwiaXNTYW1lT3JBZnRlciIsImFsbFR4biIsImNvbmNhdCIsImJhbGFuY2UiLCJZaXRyYSIsIl9kZWZhdWx0IiwiZXhwb3J0cyJdLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9zY3JhcGVycy9taXpyYWhpLnRzIl0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCBtb21lbnQgZnJvbSAnbW9tZW50JztcbmltcG9ydCB7IHR5cGUgRnJhbWUsIHR5cGUgSFRUUFJlcXVlc3QsIHR5cGUgUGFnZSB9IGZyb20gJ3B1cHBldGVlcic7XG5pbXBvcnQgeyBTSEVLRUxfQ1VSUkVOQ1kgfSBmcm9tICcuLi9jb25zdGFudHMnO1xuaW1wb3J0IHtcbiAgcGFnZUV2YWxBbGwsIHdhaXRVbnRpbEVsZW1lbnREaXNhcHBlYXIsIHdhaXRVbnRpbEVsZW1lbnRGb3VuZCwgd2FpdFVudGlsSWZyYW1lRm91bmQsXG59IGZyb20gJy4uL2hlbHBlcnMvZWxlbWVudHMtaW50ZXJhY3Rpb25zJztcbmltcG9ydCB7IGZldGNoUG9zdFdpdGhpblBhZ2UgfSBmcm9tICcuLi9oZWxwZXJzL2ZldGNoJztcbmltcG9ydCB7IHdhaXRGb3JVcmwgfSBmcm9tICcuLi9oZWxwZXJzL25hdmlnYXRpb24nO1xuaW1wb3J0IHtcbiAgdHlwZSBUcmFuc2FjdGlvbixcbiAgVHJhbnNhY3Rpb25TdGF0dXNlcywgVHJhbnNhY3Rpb25UeXBlcyxcbiAgdHlwZSBUcmFuc2FjdGlvbnNBY2NvdW50LFxufSBmcm9tICcuLi90cmFuc2FjdGlvbnMnO1xuaW1wb3J0IHsgQmFzZVNjcmFwZXJXaXRoQnJvd3NlciwgTG9naW5SZXN1bHRzLCB0eXBlIFBvc3NpYmxlTG9naW5SZXN1bHRzIH0gZnJvbSAnLi9iYXNlLXNjcmFwZXItd2l0aC1icm93c2VyJztcbmltcG9ydCB7IFNjcmFwZXJFcnJvclR5cGVzIH0gZnJvbSAnLi9lcnJvcnMnO1xuXG5pbnRlcmZhY2UgU2NyYXBlZFRyYW5zYWN0aW9uIHtcbiAgUmVjVHlwZVNwZWNpZmllZDogYm9vbGVhbjtcbiAgTUMwMlBldWxhVGFhRVo6IHN0cmluZztcbiAgTUMwMlNjaHVtRVo6IG51bWJlcjtcbiAgTUMwMkFzbWFodGFNZWtvcml0RVo6IHN0cmluZztcbiAgTUMwMlRudWFUZXVyRVo6IHN0cmluZztcbn1cblxuaW50ZXJmYWNlIFNjcmFwZWRUcmFuc2FjdGlvbnNSZXN1bHQge1xuICBoZWFkZXI6IHtcbiAgICBzdWNjZXNzOiBib29sZWFuO1xuICAgIG1lc3NhZ2VzOiB7IHRleHQ6IHN0cmluZyB9W107XG4gIH07XG4gIGJvZHk6IHtcbiAgICBmaWVsZHM6IHtcbiAgICAgIFlpdHJhOiBzdHJpbmc7XG4gICAgfTtcbiAgICB0YWJsZToge1xuICAgICAgcm93czogU2NyYXBlZFRyYW5zYWN0aW9uW107XG4gICAgfTtcbiAgfTtcbn1cblxuY29uc3QgQkFTRV9XRUJTSVRFX1VSTCA9ICdodHRwczovL3d3dy5taXpyYWhpLXRlZmFob3QuY28uaWwnO1xuY29uc3QgTE9HSU5fVVJMID0gYCR7QkFTRV9XRUJTSVRFX1VSTH0vbG9naW4vaW5kZXguaHRtbCMvYXV0aC1wYWdlLWhlYDtcbmNvbnN0IEJBU0VfQVBQX1VSTCA9ICdodHRwczovL210by5taXpyYWhpLXRlZmFob3QuY28uaWwnO1xuY29uc3QgQUZURVJfTE9HSU5fQkFTRV9VUkwgPSAvaHR0cHM6XFwvXFwvbXRvXFwubWl6cmFoaS10ZWZhaG90XFwuY29cXC5pbFxcL09ubGluZUFwcFxcLy4qLztcbmNvbnN0IE9TSF9QQUdFID0gJy9vc2gvbGVnYWN5L2xlZ2FjeS1Pc2gtTWFpbic7XG5jb25zdCBUUkFOU0FDVElPTlNfUEFHRSA9ICcvb3NoL2xlZ2FjeS9yb290LW1haW4tb3NoLXA0MjhOZXcnO1xuY29uc3QgVFJBTlNBQ1RJT05TX1JFUVVFU1RfVVJMUyA9IFtcbiAgYCR7QkFTRV9BUFBfVVJMfS9PbmxpbmVQaWxvdC9hcGkvU2t5T1NIL2dldDQyOEluZGV4YCxcbiAgYCR7QkFTRV9BUFBfVVJMfS9PbmxpbmUvYXBpL1NreU9TSC9nZXQ0MjhJbmRleGAsXG5dO1xuY29uc3QgUEVORElOR19UUkFOU0FDVElPTlNfUEFHRSA9ICcvb3NoL2xlZ2FjeS9sZWdhY3ktT3NoLXA0MjAnO1xuY29uc3QgUEVORElOR19UUkFOU0FDVElPTlNfSUZSQU1FID0gJ3A0MjAuYXNweCc7XG5jb25zdCBDSEFOR0VfUEFTU1dPUkRfVVJMID0gL2h0dHBzOlxcL1xcL3d3d1xcLm1penJhaGktdGVmYWhvdFxcLmNvXFwuaWxcXC9sb2dpblxcL2luZGV4XFwuaHRtbCNcXC9jaGFuZ2UtcGFzcy87XG5jb25zdCBEQVRFX0ZPUk1BVCA9ICdERC9NTS9ZWVlZJztcbmNvbnN0IE1BWF9ST1dTX1BFUl9SRVFVRVNUID0gMTAwMDAwMDAwMDA7XG5cbmNvbnN0IHVzZXJuYW1lU2VsZWN0b3IgPSAnI2VtYWlsRGVza3RvcEhlYic7XG5jb25zdCBwYXNzd29yZFNlbGVjdG9yID0gJyNwYXNzd29yZElERGVza3RvcEhFQic7XG5jb25zdCBzdWJtaXRCdXR0b25TZWxlY3RvciA9ICcuZm9ybS1kZXNrdG9wIGJ1dHRvbic7XG5jb25zdCBpbnZhbGlkUGFzc3dvcmRTZWxlY3RvciA9ICdhW2hyZWYqPVwiaHR0cHM6Ly9zYy5taXpyYWhpLXRlZmFob3QuY28uaWwvU0NTZXJ2aWNlcy9TQy9QMDEwLmFzcHhcIl0nO1xuY29uc3QgYWZ0ZXJMb2dpblNlbGVjdG9yID0gJyNkcm9wZG93bkJhc2ljJztcbmNvbnN0IGxvZ2luU3Bpbm5lclNlbGVjdG9yID0gJ2Rpdi5uZ3gtb3ZlcmxheS5sb2FkaW5nLWZvcmVncm91bmQnO1xuY29uc3QgYWNjb3VudERyb3BEb3duSXRlbVNlbGVjdG9yID0gJyNBY2NvdW50UGlja2VyIC5pdGVtJztcbmNvbnN0IHBlbmRpbmdUcnhJZGVudGlmaWVySWQgPSAnI2N0bDAwX0NvbnRlbnRQbGFjZUhvbGRlcjJfcGFuZWwxJztcbmNvbnN0IGNoZWNraW5nQWNjb3VudFRhYkhlYnJld05hbWUgPSAn16LXldeR16gg15XXqdeRJztcbmNvbnN0IGNoZWNraW5nQWNjb3VudFRhYkVuZ2xpc2hOYW1lID0gJ0NoZWNraW5nIEFjY291bnQnO1xuXG5mdW5jdGlvbiBjcmVhdGVMb2dpbkZpZWxkcyhjcmVkZW50aWFsczogU2NyYXBlclNwZWNpZmljQ3JlZGVudGlhbHMpIHtcbiAgcmV0dXJuIFtcbiAgICB7IHNlbGVjdG9yOiB1c2VybmFtZVNlbGVjdG9yLCB2YWx1ZTogY3JlZGVudGlhbHMudXNlcm5hbWUgfSxcbiAgICB7IHNlbGVjdG9yOiBwYXNzd29yZFNlbGVjdG9yLCB2YWx1ZTogY3JlZGVudGlhbHMucGFzc3dvcmQgfSxcbiAgXTtcbn1cblxuYXN5bmMgZnVuY3Rpb24gaXNMb2dnZWRJbihvcHRpb25zOiB7IHBhZ2U/OiBQYWdlIHwgdW5kZWZpbmVkIH0gfCB1bmRlZmluZWQpIHtcbiAgaWYgKCFvcHRpb25zPy5wYWdlKSB7XG4gICAgcmV0dXJuIGZhbHNlO1xuICB9XG4gIGNvbnN0IG9zaFhQYXRoID0gYC8vYS8vc3Bhbltjb250YWlucyguLCBcIiR7Y2hlY2tpbmdBY2NvdW50VGFiSGVicmV3TmFtZX1cIikgb3IgY29udGFpbnMoLiwgXCIke2NoZWNraW5nQWNjb3VudFRhYkVuZ2xpc2hOYW1lfVwiKV1gO1xuICBjb25zdCBvc2hUYWIgPSBhd2FpdCBvcHRpb25zLnBhZ2UuJCQoYHhwYXRoJHtvc2hYUGF0aH1gKTtcbiAgcmV0dXJuIG9zaFRhYi5sZW5ndGggPiAwO1xufVxuXG5mdW5jdGlvbiBnZXRQb3NzaWJsZUxvZ2luUmVzdWx0cyhwYWdlOiBQYWdlKTogUG9zc2libGVMb2dpblJlc3VsdHMge1xuICByZXR1cm4ge1xuICAgIFtMb2dpblJlc3VsdHMuU3VjY2Vzc106IFtBRlRFUl9MT0dJTl9CQVNFX1VSTCwgaXNMb2dnZWRJbl0sXG4gICAgW0xvZ2luUmVzdWx0cy5JbnZhbGlkUGFzc3dvcmRdOiBbYXN5bmMgKCkgPT4gISEoYXdhaXQgcGFnZS4kKGludmFsaWRQYXNzd29yZFNlbGVjdG9yKSldLFxuICAgIFtMb2dpblJlc3VsdHMuQ2hhbmdlUGFzc3dvcmRdOiBbQ0hBTkdFX1BBU1NXT1JEX1VSTF0sXG4gIH07XG59XG5cbmZ1bmN0aW9uIGdldFN0YXJ0TW9tZW50KG9wdGlvbnNTdGFydERhdGU6IERhdGUpIHtcbiAgY29uc3QgZGVmYXVsdFN0YXJ0TW9tZW50ID0gbW9tZW50KCkuc3VidHJhY3QoMSwgJ3llYXJzJyk7XG4gIGNvbnN0IHN0YXJ0RGF0ZSA9IG9wdGlvbnNTdGFydERhdGUgfHwgZGVmYXVsdFN0YXJ0TW9tZW50LnRvRGF0ZSgpO1xuICByZXR1cm4gbW9tZW50Lm1heChkZWZhdWx0U3RhcnRNb21lbnQsIG1vbWVudChzdGFydERhdGUpKTtcbn1cblxuZnVuY3Rpb24gY3JlYXRlRGF0YUZyb21SZXF1ZXN0KHJlcXVlc3Q6IEhUVFBSZXF1ZXN0LCBvcHRpb25zU3RhcnREYXRlOiBEYXRlKSB7XG4gIGNvbnN0IGRhdGEgPSBKU09OLnBhcnNlKHJlcXVlc3QucG9zdERhdGEoKSB8fCAne30nKTtcblxuICBkYXRhLmluRnJvbURhdGUgPSBnZXRTdGFydE1vbWVudChvcHRpb25zU3RhcnREYXRlKS5mb3JtYXQoREFURV9GT1JNQVQpO1xuICBkYXRhLmluVG9EYXRlID0gbW9tZW50KCkuZm9ybWF0KERBVEVfRk9STUFUKTtcbiAgZGF0YS50YWJsZS5tYXhSb3cgPSBNQVhfUk9XU19QRVJfUkVRVUVTVDtcblxuICByZXR1cm4gZGF0YTtcbn1cblxuZnVuY3Rpb24gY3JlYXRlSGVhZGVyc0Zyb21SZXF1ZXN0KHJlcXVlc3Q6IEhUVFBSZXF1ZXN0KSB7XG4gIHJldHVybiB7XG4gICAgJ21penJhaGl4c3JmdG9rZW4nOiByZXF1ZXN0LmhlYWRlcnMoKS5taXpyYWhpeHNyZnRva2VuLFxuICAgICdDb250ZW50LVR5cGUnOiByZXF1ZXN0LmhlYWRlcnMoKVsnY29udGVudC10eXBlJ10sXG4gIH07XG59XG5cbmZ1bmN0aW9uIGNvbnZlcnRUcmFuc2FjdGlvbnModHhuczogU2NyYXBlZFRyYW5zYWN0aW9uW10pOiBUcmFuc2FjdGlvbltdIHtcbiAgcmV0dXJuIHR4bnMubWFwKChyb3cpID0+IHtcbiAgICBjb25zdCB0eG5EYXRlID0gbW9tZW50KHJvdy5NQzAyUGV1bGFUYWFFWiwgbW9tZW50LkhUTUw1X0ZNVC5EQVRFVElNRV9MT0NBTF9TRUNPTkRTKVxuICAgICAgLnRvSVNPU3RyaW5nKCk7XG5cbiAgICByZXR1cm4ge1xuICAgICAgdHlwZTogVHJhbnNhY3Rpb25UeXBlcy5Ob3JtYWwsXG4gICAgICBpZGVudGlmaWVyOiByb3cuTUMwMkFzbWFodGFNZWtvcml0RVogPyBwYXJzZUludChyb3cuTUMwMkFzbWFodGFNZWtvcml0RVosIDEwKSA6IHVuZGVmaW5lZCxcbiAgICAgIGRhdGU6IHR4bkRhdGUsXG4gICAgICBwcm9jZXNzZWREYXRlOiB0eG5EYXRlLFxuICAgICAgb3JpZ2luYWxBbW91bnQ6IHJvdy5NQzAyU2NodW1FWixcbiAgICAgIG9yaWdpbmFsQ3VycmVuY3k6IFNIRUtFTF9DVVJSRU5DWSxcbiAgICAgIGNoYXJnZWRBbW91bnQ6IHJvdy5NQzAyU2NodW1FWixcbiAgICAgIGRlc2NyaXB0aW9uOiByb3cuTUMwMlRudWFUZXVyRVosXG4gICAgICBzdGF0dXM6IFRyYW5zYWN0aW9uU3RhdHVzZXMuQ29tcGxldGVkLFxuICAgIH07XG4gIH0pO1xufVxuXG5hc3luYyBmdW5jdGlvbiBleHRyYWN0UGVuZGluZ1RyYW5zYWN0aW9ucyhwYWdlOiBGcmFtZSk6IFByb21pc2U8VHJhbnNhY3Rpb25bXT4ge1xuICBjb25zdCBwZW5kaW5nVHhuID0gYXdhaXQgcGFnZUV2YWxBbGwocGFnZSwgJ3RyLnJnUm93JywgW10sICh0cnMpID0+IHtcbiAgICByZXR1cm4gdHJzLm1hcCgodHIpID0+IEFycmF5LmZyb20odHIucXVlcnlTZWxlY3RvckFsbCgndGQnKSwgKHRkOiBIVE1MVGFibGVEYXRhQ2VsbEVsZW1lbnQpID0+IHRkLnRleHRDb250ZW50IHx8ICcnKSk7XG4gIH0pO1xuXG4gIHJldHVybiBwZW5kaW5nVHhuLm1hcCgodHhuKSA9PiB7XG4gICAgY29uc3QgZGF0ZSA9IG1vbWVudCh0eG5bMF0sICdERC9NTS9ZWScpLnRvSVNPU3RyaW5nKCk7XG4gICAgY29uc3QgYW1vdW50ID0gcGFyc2VJbnQodHhuWzNdLCAxMCk7XG4gICAgcmV0dXJuIHtcbiAgICAgIHR5cGU6IFRyYW5zYWN0aW9uVHlwZXMuTm9ybWFsLFxuICAgICAgZGF0ZSxcbiAgICAgIHByb2Nlc3NlZERhdGU6IGRhdGUsXG4gICAgICBvcmlnaW5hbEFtb3VudDogYW1vdW50LFxuICAgICAgb3JpZ2luYWxDdXJyZW5jeTogU0hFS0VMX0NVUlJFTkNZLFxuICAgICAgY2hhcmdlZEFtb3VudDogYW1vdW50LFxuICAgICAgZGVzY3JpcHRpb246IHR4blsxXSxcbiAgICAgIHN0YXR1czogVHJhbnNhY3Rpb25TdGF0dXNlcy5QZW5kaW5nLFxuICAgIH07XG4gIH0pO1xufVxuXG5hc3luYyBmdW5jdGlvbiBwb3N0TG9naW4ocGFnZTogUGFnZSkge1xuICBhd2FpdCBQcm9taXNlLnJhY2UoW1xuICAgIHdhaXRVbnRpbEVsZW1lbnRGb3VuZChwYWdlLCBhZnRlckxvZ2luU2VsZWN0b3IpLFxuICAgIHdhaXRVbnRpbEVsZW1lbnRGb3VuZChwYWdlLCBpbnZhbGlkUGFzc3dvcmRTZWxlY3RvciksXG4gICAgd2FpdEZvclVybChwYWdlLCBDSEFOR0VfUEFTU1dPUkRfVVJMKSxcbiAgXSk7XG59XG5cbnR5cGUgU2NyYXBlclNwZWNpZmljQ3JlZGVudGlhbHMgPSB7IHVzZXJuYW1lOiBzdHJpbmcsIHBhc3N3b3JkOiBzdHJpbmcgfTtcblxuY2xhc3MgTWl6cmFoaVNjcmFwZXIgZXh0ZW5kcyBCYXNlU2NyYXBlcldpdGhCcm93c2VyPFNjcmFwZXJTcGVjaWZpY0NyZWRlbnRpYWxzPiB7XG4gIGdldExvZ2luT3B0aW9ucyhjcmVkZW50aWFsczogU2NyYXBlclNwZWNpZmljQ3JlZGVudGlhbHMpIHtcbiAgICByZXR1cm4ge1xuICAgICAgbG9naW5Vcmw6IExPR0lOX1VSTCxcbiAgICAgIGZpZWxkczogY3JlYXRlTG9naW5GaWVsZHMoY3JlZGVudGlhbHMpLFxuICAgICAgc3VibWl0QnV0dG9uU2VsZWN0b3IsXG4gICAgICBjaGVja1JlYWRpbmVzczogYXN5bmMgKCkgPT4gd2FpdFVudGlsRWxlbWVudERpc2FwcGVhcih0aGlzLnBhZ2UsIGxvZ2luU3Bpbm5lclNlbGVjdG9yKSxcbiAgICAgIHBvc3RBY3Rpb246IGFzeW5jICgpID0+IHBvc3RMb2dpbih0aGlzLnBhZ2UpLFxuICAgICAgcG9zc2libGVSZXN1bHRzOiBnZXRQb3NzaWJsZUxvZ2luUmVzdWx0cyh0aGlzLnBhZ2UpLFxuICAgIH07XG4gIH1cblxuICBhc3luYyBmZXRjaERhdGEoKSB7XG4gICAgYXdhaXQgdGhpcy5wYWdlLiRldmFsKCcjZHJvcGRvd25CYXNpYywgLml0ZW0nLCAoZWwpID0+IChlbCBhcyBIVE1MRWxlbWVudCkuY2xpY2soKSk7XG5cbiAgICBjb25zdCBudW1PZkFjY291bnRzID0gKGF3YWl0IHRoaXMucGFnZS4kJChhY2NvdW50RHJvcERvd25JdGVtU2VsZWN0b3IpKS5sZW5ndGg7XG5cbiAgICB0cnkge1xuICAgICAgY29uc3QgcmVzdWx0czogVHJhbnNhY3Rpb25zQWNjb3VudFtdID0gW107XG5cbiAgICAgIGZvciAobGV0IGkgPSAwOyBpIDwgbnVtT2ZBY2NvdW50czsgaSArPSAxKSB7XG4gICAgICAgIGlmIChpID4gMCkge1xuICAgICAgICAgIGF3YWl0IHRoaXMucGFnZS4kZXZhbCgnI2Ryb3Bkb3duQmFzaWMsIC5pdGVtJywgKGVsKSA9PiAoZWwgYXMgSFRNTEVsZW1lbnQpLmNsaWNrKCkpO1xuICAgICAgICB9XG5cbiAgICAgICAgYXdhaXQgdGhpcy5wYWdlLiRldmFsKGAke2FjY291bnREcm9wRG93bkl0ZW1TZWxlY3Rvcn06bnRoLWNoaWxkKCR7aSArIDF9KWAsIChlbCkgPT4gKGVsIGFzIEhUTUxFbGVtZW50KS5jbGljaygpKTtcbiAgICAgICAgcmVzdWx0cy5wdXNoKChhd2FpdCB0aGlzLmZldGNoQWNjb3VudCgpKSk7XG4gICAgICB9XG5cbiAgICAgIHJldHVybiB7XG4gICAgICAgIHN1Y2Nlc3M6IHRydWUsXG4gICAgICAgIGFjY291bnRzOiByZXN1bHRzLFxuICAgICAgfTtcbiAgICB9IGNhdGNoIChlKSB7XG4gICAgICByZXR1cm4ge1xuICAgICAgICBzdWNjZXNzOiBmYWxzZSxcbiAgICAgICAgZXJyb3JUeXBlOiBTY3JhcGVyRXJyb3JUeXBlcy5HZW5lcmljLFxuICAgICAgICBlcnJvck1lc3NhZ2U6IChlIGFzIEVycm9yKS5tZXNzYWdlLFxuICAgICAgfTtcbiAgICB9XG4gIH1cblxuICBwcml2YXRlIGFzeW5jIGdldFBlbmRpbmdUcmFuc2FjdGlvbnMoKTogUHJvbWlzZTxUcmFuc2FjdGlvbltdPiB7XG4gICAgYXdhaXQgdGhpcy5wYWdlLiRldmFsKGBhW2hyZWYqPVwiJHtQRU5ESU5HX1RSQU5TQUNUSU9OU19QQUdFfVwiXWAsIChlbCkgPT4gKGVsIGFzIEhUTUxFbGVtZW50KS5jbGljaygpKTtcbiAgICBjb25zdCBmcmFtZSA9IGF3YWl0IHdhaXRVbnRpbElmcmFtZUZvdW5kKHRoaXMucGFnZSwgKGYpID0+IGYudXJsKCkuaW5jbHVkZXMoUEVORElOR19UUkFOU0FDVElPTlNfSUZSQU1FKSk7XG4gICAgY29uc3QgaXNQZW5kaW5nID0gYXdhaXQgd2FpdFVudGlsRWxlbWVudEZvdW5kKGZyYW1lLCBwZW5kaW5nVHJ4SWRlbnRpZmllcklkKS50aGVuKCgpID0+IHRydWUpLmNhdGNoKCgpID0+IGZhbHNlKTtcbiAgICBpZiAoIWlzUGVuZGluZykge1xuICAgICAgcmV0dXJuIFtdO1xuICAgIH1cblxuICAgIGNvbnN0IHBlbmRpbmdUeG4gPSBhd2FpdCBleHRyYWN0UGVuZGluZ1RyYW5zYWN0aW9ucyhmcmFtZSk7XG4gICAgcmV0dXJuIHBlbmRpbmdUeG47XG4gIH1cblxuICBwcml2YXRlIGFzeW5jIGZldGNoQWNjb3VudCgpIHtcbiAgICBhd2FpdCB0aGlzLnBhZ2Uud2FpdEZvclNlbGVjdG9yKGBhW2hyZWYqPVwiJHtPU0hfUEFHRX1cIl1gKTtcbiAgICBhd2FpdCB0aGlzLnBhZ2UuJGV2YWwoYGFbaHJlZio9XCIke09TSF9QQUdFfVwiXWAsIChlbCkgPT4gKGVsIGFzIEhUTUxFbGVtZW50KS5jbGljaygpKTtcbiAgICBhd2FpdCB3YWl0VW50aWxFbGVtZW50Rm91bmQodGhpcy5wYWdlLCBgYVtocmVmKj1cIiR7VFJBTlNBQ1RJT05TX1BBR0V9XCJdYCk7XG4gICAgYXdhaXQgdGhpcy5wYWdlLiRldmFsKGBhW2hyZWYqPVwiJHtUUkFOU0FDVElPTlNfUEFHRX1cIl1gLCAoZWwpID0+IChlbCBhcyBIVE1MRWxlbWVudCkuY2xpY2soKSk7XG5cbiAgICBjb25zdCBhY2NvdW50TnVtYmVyRWxlbWVudCA9IGF3YWl0IHRoaXMucGFnZS4kKCcjZHJvcGRvd25CYXNpYyBiJyk7XG4gICAgY29uc3QgYWNjb3VudE51bWJlckhhbmRsZSA9IGF3YWl0IGFjY291bnROdW1iZXJFbGVtZW50Py5nZXRQcm9wZXJ0eSgndGl0bGUnKTtcbiAgICBjb25zdCBhY2NvdW50TnVtYmVyID0gKChhd2FpdCBhY2NvdW50TnVtYmVySGFuZGxlPy5qc29uVmFsdWUoKSkgYXMgc3RyaW5nKTtcblxuICAgIGNvbnN0IHJlc3BvbnNlID0gYXdhaXQgUHJvbWlzZS5hbnkoVFJBTlNBQ1RJT05TX1JFUVVFU1RfVVJMUy5tYXAoYXN5bmMgKHVybCkgPT4ge1xuICAgICAgY29uc3QgcmVxdWVzdCA9IGF3YWl0IHRoaXMucGFnZS53YWl0Rm9yUmVxdWVzdCh1cmwpO1xuICAgICAgY29uc3QgZGF0YSA9IGNyZWF0ZURhdGFGcm9tUmVxdWVzdChyZXF1ZXN0LCB0aGlzLm9wdGlvbnMuc3RhcnREYXRlKTtcbiAgICAgIGNvbnN0IGhlYWRlcnMgPSBjcmVhdGVIZWFkZXJzRnJvbVJlcXVlc3QocmVxdWVzdCk7XG5cbiAgICAgIHJldHVybiBmZXRjaFBvc3RXaXRoaW5QYWdlPFNjcmFwZWRUcmFuc2FjdGlvbnNSZXN1bHQ+KHRoaXMucGFnZSwgdXJsLCBkYXRhLCBoZWFkZXJzKTtcbiAgICB9KSk7XG5cbiAgICBpZiAoIXJlc3BvbnNlIHx8IHJlc3BvbnNlLmhlYWRlci5zdWNjZXNzID09PSBmYWxzZSkge1xuICAgICAgdGhyb3cgbmV3IEVycm9yKGBFcnJvciBmZXRjaGluZyB0cmFuc2FjdGlvbi4gUmVzcG9uc2UgbWVzc2FnZTogJHtyZXNwb25zZSA/IHJlc3BvbnNlLmhlYWRlci5tZXNzYWdlc1swXS50ZXh0IDogJyd9YCk7XG4gICAgfVxuXG4gICAgY29uc3QgcmVsZXZhbnRSb3dzID0gcmVzcG9uc2UuYm9keS50YWJsZS5yb3dzLmZpbHRlcigocm93KSA9PiByb3cuUmVjVHlwZVNwZWNpZmllZCk7XG4gICAgY29uc3Qgb3NoVHhuID0gY29udmVydFRyYW5zYWN0aW9ucyhyZWxldmFudFJvd3MpO1xuXG4gICAgLy8gd29ya2Fyb3VuZCBmb3IgYSBidWcgd2hpY2ggdGhlIGJhbmsncyBBUEkgcmV0dXJucyB0cmFuc2FjdGlvbnMgYmVmb3JlIHRoZSByZXF1ZXN0ZWQgc3RhcnQgZGF0ZVxuICAgIGNvbnN0IHN0YXJ0TW9tZW50ID0gZ2V0U3RhcnRNb21lbnQodGhpcy5vcHRpb25zLnN0YXJ0RGF0ZSk7XG4gICAgY29uc3Qgb3NoVHhuQWZ0ZXJTdGFydERhdGUgPSBvc2hUeG4uZmlsdGVyKCh0eG4pID0+IG1vbWVudCh0eG4uZGF0ZSkuaXNTYW1lT3JBZnRlcihzdGFydE1vbWVudCkpO1xuXG4gICAgY29uc3QgcGVuZGluZ1R4biA9IGF3YWl0IHRoaXMuZ2V0UGVuZGluZ1RyYW5zYWN0aW9ucygpO1xuICAgIGNvbnN0IGFsbFR4biA9IG9zaFR4bkFmdGVyU3RhcnREYXRlLmNvbmNhdChwZW5kaW5nVHhuKTtcblxuICAgIHJldHVybiB7XG4gICAgICBhY2NvdW50TnVtYmVyLFxuICAgICAgdHhuczogYWxsVHhuLFxuICAgICAgYmFsYW5jZTogK3Jlc3BvbnNlLmJvZHkuZmllbGRzPy5ZaXRyYSxcbiAgICB9O1xuICB9XG59XG5cbmV4cG9ydCBkZWZhdWx0IE1penJhaGlTY3JhcGVyO1xuIl0sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7O0FBQUEsSUFBQUEsT0FBQSxHQUFBQyxzQkFBQSxDQUFBQyxPQUFBO0FBRUEsSUFBQUMsVUFBQSxHQUFBRCxPQUFBO0FBQ0EsSUFBQUUscUJBQUEsR0FBQUYsT0FBQTtBQUdBLElBQUFHLE1BQUEs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
|
|
204
|
+
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJfbW9tZW50IiwiX2ludGVyb3BSZXF1aXJlRGVmYXVsdCIsInJlcXVpcmUiLCJfY29uc3RhbnRzIiwiX2VsZW1lbnRzSW50ZXJhY3Rpb25zIiwiX2ZldGNoIiwiX25hdmlnYXRpb24iLCJfdHJhbnNhY3Rpb25zIiwiX2Jhc2VTY3JhcGVyV2l0aEJyb3dzZXIiLCJfZXJyb3JzIiwiZSIsIl9fZXNNb2R1bGUiLCJkZWZhdWx0IiwiQkFTRV9XRUJTSVRFX1VSTCIsIkxPR0lOX1VSTCIsIkJBU0VfQVBQX1VSTCIsIkFGVEVSX0xPR0lOX0JBU0VfVVJMIiwiT1NIX1BBR0UiLCJUUkFOU0FDVElPTlNfUEFHRSIsIlRSQU5TQUNUSU9OU19SRVFVRVNUX1VSTFMiLCJQRU5ESU5HX1RSQU5TQUNUSU9OU19QQUdFIiwiUEVORElOR19UUkFOU0FDVElPTlNfSUZSQU1FIiwiQ0hBTkdFX1BBU1NXT1JEX1VSTCIsIkRBVEVfRk9STUFUIiwiTUFYX1JPV1NfUEVSX1JFUVVFU1QiLCJ1c2VybmFtZVNlbGVjdG9yIiwicGFzc3dvcmRTZWxlY3RvciIsInN1Ym1pdEJ1dHRvblNlbGVjdG9yIiwiaW52YWxpZFBhc3N3b3JkU2VsZWN0b3IiLCJhZnRlckxvZ2luU2VsZWN0b3IiLCJsb2dpblNwaW5uZXJTZWxlY3RvciIsImFjY291bnREcm9wRG93bkl0ZW1TZWxlY3RvciIsInBlbmRpbmdUcnhJZGVudGlmaWVySWQiLCJjaGVja2luZ0FjY291bnRUYWJIZWJyZXdOYW1lIiwiY2hlY2tpbmdBY2NvdW50VGFiRW5nbGlzaE5hbWUiLCJjcmVhdGVMb2dpbkZpZWxkcyIsImNyZWRlbnRpYWxzIiwic2VsZWN0b3IiLCJ2YWx1ZSIsInVzZXJuYW1lIiwicGFzc3dvcmQiLCJpc0xvZ2dlZEluIiwib3B0aW9ucyIsInBhZ2UiLCJvc2hYUGF0aCIsIm9zaFRhYiIsIiQkIiwibGVuZ3RoIiwiZ2V0UG9zc2libGVMb2dpblJlc3VsdHMiLCJMb2dpblJlc3VsdHMiLCJTdWNjZXNzIiwiSW52YWxpZFBhc3N3b3JkIiwiJCIsIkNoYW5nZVBhc3N3b3JkIiwiZ2V0U3RhcnRNb21lbnQiLCJvcHRpb25zU3RhcnREYXRlIiwiZGVmYXVsdFN0YXJ0TW9tZW50IiwibW9tZW50Iiwic3VidHJhY3QiLCJzdGFydERhdGUiLCJ0b0RhdGUiLCJtYXgiLCJjcmVhdGVEYXRhRnJvbVJlcXVlc3QiLCJyZXF1ZXN0IiwiZGF0YSIsIkpTT04iLCJwYXJzZSIsInBvc3REYXRhIiwiaW5Gcm9tRGF0ZSIsImZvcm1hdCIsImluVG9EYXRlIiwidGFibGUiLCJtYXhSb3ciLCJjcmVhdGVIZWFkZXJzRnJvbVJlcXVlc3QiLCJoZWFkZXJzIiwibWl6cmFoaXhzcmZ0b2tlbiIsImNvbnZlcnRUcmFuc2FjdGlvbnMiLCJ0eG5zIiwibWFwIiwicm93IiwidHhuRGF0ZSIsIk1DMDJQZXVsYVRhYUVaIiwiSFRNTDVfRk1UIiwiREFURVRJTUVfTE9DQUxfU0VDT05EUyIsInRvSVNPU3RyaW5nIiwidHlwZSIsIlRyYW5zYWN0aW9uVHlwZXMiLCJOb3JtYWwiLCJpZGVudGlmaWVyIiwiTUMwMkFzbWFodGFNZWtvcml0RVoiLCJwYXJzZUludCIsInVuZGVmaW5lZCIsImRhdGUiLCJwcm9jZXNzZWREYXRlIiwib3JpZ2luYWxBbW91bnQiLCJNQzAyU2NodW1FWiIsIm9yaWdpbmFsQ3VycmVuY3kiLCJTSEVLRUxfQ1VSUkVOQ1kiLCJjaGFyZ2VkQW1vdW50IiwiZGVzY3JpcHRpb24iLCJNQzAyVG51YVRldXJFWiIsInN0YXR1cyIsIlRyYW5zYWN0aW9uU3RhdHVzZXMiLCJDb21wbGV0ZWQiLCJleHRyYWN0UGVuZGluZ1RyYW5zYWN0aW9ucyIsInBlbmRpbmdUeG4iLCJwYWdlRXZhbEFsbCIsInRycyIsInRyIiwiQXJyYXkiLCJmcm9tIiwicXVlcnlTZWxlY3RvckFsbCIsInRkIiwidGV4dENvbnRlbnQiLCJ0eG4iLCJhbW91bnQiLCJQZW5kaW5nIiwicG9zdExvZ2luIiwiUHJvbWlzZSIsInJhY2UiLCJ3YWl0VW50aWxFbGVtZW50Rm91bmQiLCJ3YWl0Rm9yVXJsIiwiTWl6cmFoaVNjcmFwZXIiLCJCYXNlU2NyYXBlcldpdGhCcm93c2VyIiwiZ2V0TG9naW5PcHRpb25zIiwibG9naW5VcmwiLCJmaWVsZHMiLCJjaGVja1JlYWRpbmVzcyIsIndhaXRVbnRpbEVsZW1lbnREaXNhcHBlYXIiLCJwb3N0QWN0aW9uIiwicG9zc2libGVSZXN1bHRzIiwiZmV0Y2hEYXRhIiwiJGV2YWwiLCJlbCIsImNsaWNrIiwibnVtT2ZBY2NvdW50cyIsInJlc3VsdHMiLCJpIiwicHVzaCIsImZldGNoQWNjb3VudCIsInN1Y2Nlc3MiLCJhY2NvdW50cyIsImVycm9yVHlwZSIsIlNjcmFwZXJFcnJvclR5cGVzIiwiR2VuZXJpYyIsImVycm9yTWVzc2FnZSIsIm1lc3NhZ2UiLCJnZXRQZW5kaW5nVHJhbnNhY3Rpb25zIiwiZnJhbWUiLCJ3YWl0VW50aWxJZnJhbWVGb3VuZCIsImYiLCJ1cmwiLCJpbmNsdWRlcyIsImlzUGVuZGluZyIsInRoZW4iLCJjYXRjaCIsIl9yZXNwb25zZSRib2R5JGZpZWxkcyIsIndhaXRGb3JTZWxlY3RvciIsImFjY291bnROdW1iZXJFbGVtZW50IiwiYWNjb3VudE51bWJlckhhbmRsZSIsImdldFByb3BlcnR5IiwiYWNjb3VudE51bWJlciIsImpzb25WYWx1ZSIsIkVycm9yIiwicmVzcG9uc2UiLCJhbnkiLCJ3YWl0Rm9yUmVxdWVzdCIsImZldGNoUG9zdFdpdGhpblBhZ2UiLCJoZWFkZXIiLCJtZXNzYWdlcyIsInRleHQiLCJyZWxldmFudFJvd3MiLCJib2R5Iiwicm93cyIsImZpbHRlciIsIlJlY1R5cGVTcGVjaWZpZWQiLCJvc2hUeG4iLCJzdGFydE1vbWVudCIsIm9zaFR4bkFmdGVyU3RhcnREYXRlIiwiaXNTYW1lT3JBZnRlciIsImFsbFR4biIsImNvbmNhdCIsImJhbGFuY2UiLCJZaXRyYSIsIl9kZWZhdWx0IiwiZXhwb3J0cyJdLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9zY3JhcGVycy9taXpyYWhpLnRzIl0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCBtb21lbnQgZnJvbSAnbW9tZW50JztcbmltcG9ydCB7IHR5cGUgRnJhbWUsIHR5cGUgSFRUUFJlcXVlc3QsIHR5cGUgUGFnZSB9IGZyb20gJ3B1cHBldGVlcic7XG5pbXBvcnQgeyBTSEVLRUxfQ1VSUkVOQ1kgfSBmcm9tICcuLi9jb25zdGFudHMnO1xuaW1wb3J0IHtcbiAgcGFnZUV2YWxBbGwsIHdhaXRVbnRpbEVsZW1lbnREaXNhcHBlYXIsIHdhaXRVbnRpbEVsZW1lbnRGb3VuZCwgd2FpdFVudGlsSWZyYW1lRm91bmQsXG59IGZyb20gJy4uL2hlbHBlcnMvZWxlbWVudHMtaW50ZXJhY3Rpb25zJztcbmltcG9ydCB7IGZldGNoUG9zdFdpdGhpblBhZ2UgfSBmcm9tICcuLi9oZWxwZXJzL2ZldGNoJztcbmltcG9ydCB7IHdhaXRGb3JVcmwgfSBmcm9tICcuLi9oZWxwZXJzL25hdmlnYXRpb24nO1xuaW1wb3J0IHtcbiAgdHlwZSBUcmFuc2FjdGlvbixcbiAgVHJhbnNhY3Rpb25TdGF0dXNlcywgVHJhbnNhY3Rpb25UeXBlcyxcbiAgdHlwZSBUcmFuc2FjdGlvbnNBY2NvdW50LFxufSBmcm9tICcuLi90cmFuc2FjdGlvbnMnO1xuaW1wb3J0IHsgQmFzZVNjcmFwZXJXaXRoQnJvd3NlciwgTG9naW5SZXN1bHRzLCB0eXBlIFBvc3NpYmxlTG9naW5SZXN1bHRzIH0gZnJvbSAnLi9iYXNlLXNjcmFwZXItd2l0aC1icm93c2VyJztcbmltcG9ydCB7IFNjcmFwZXJFcnJvclR5cGVzIH0gZnJvbSAnLi9lcnJvcnMnO1xuXG5pbnRlcmZhY2UgU2NyYXBlZFRyYW5zYWN0aW9uIHtcbiAgUmVjVHlwZVNwZWNpZmllZDogYm9vbGVhbjtcbiAgTUMwMlBldWxhVGFhRVo6IHN0cmluZztcbiAgTUMwMlNjaHVtRVo6IG51bWJlcjtcbiAgTUMwMkFzbWFodGFNZWtvcml0RVo6IHN0cmluZztcbiAgTUMwMlRudWFUZXVyRVo6IHN0cmluZztcbn1cblxuaW50ZXJmYWNlIFNjcmFwZWRUcmFuc2FjdGlvbnNSZXN1bHQge1xuICBoZWFkZXI6IHtcbiAgICBzdWNjZXNzOiBib29sZWFuO1xuICAgIG1lc3NhZ2VzOiB7IHRleHQ6IHN0cmluZyB9W107XG4gIH07XG4gIGJvZHk6IHtcbiAgICBmaWVsZHM6IHtcbiAgICAgIFlpdHJhOiBzdHJpbmc7XG4gICAgfTtcbiAgICB0YWJsZToge1xuICAgICAgcm93czogU2NyYXBlZFRyYW5zYWN0aW9uW107XG4gICAgfTtcbiAgfTtcbn1cblxuY29uc3QgQkFTRV9XRUJTSVRFX1VSTCA9ICdodHRwczovL3d3dy5taXpyYWhpLXRlZmFob3QuY28uaWwnO1xuY29uc3QgTE9HSU5fVVJMID0gYCR7QkFTRV9XRUJTSVRFX1VSTH0vbG9naW4vaW5kZXguaHRtbCMvYXV0aC1wYWdlLWhlYDtcbmNvbnN0IEJBU0VfQVBQX1VSTCA9ICdodHRwczovL210by5taXpyYWhpLXRlZmFob3QuY28uaWwnO1xuY29uc3QgQUZURVJfTE9HSU5fQkFTRV9VUkwgPSAvaHR0cHM6XFwvXFwvbXRvXFwubWl6cmFoaS10ZWZhaG90XFwuY29cXC5pbFxcL09ubGluZUFwcFxcLy4qLztcbmNvbnN0IE9TSF9QQUdFID0gJy9vc2gvbGVnYWN5L2xlZ2FjeS1Pc2gtTWFpbic7XG5jb25zdCBUUkFOU0FDVElPTlNfUEFHRSA9ICcvb3NoL2xlZ2FjeS9yb290LW1haW4tb3NoLXA0MjhOZXcnO1xuY29uc3QgVFJBTlNBQ1RJT05TX1JFUVVFU1RfVVJMUyA9IFtcbiAgYCR7QkFTRV9BUFBfVVJMfS9PbmxpbmVQaWxvdC9hcGkvU2t5T1NIL2dldDQyOEluZGV4YCxcbiAgYCR7QkFTRV9BUFBfVVJMfS9PbmxpbmUvYXBpL1NreU9TSC9nZXQ0MjhJbmRleGAsXG5dO1xuY29uc3QgUEVORElOR19UUkFOU0FDVElPTlNfUEFHRSA9ICcvb3NoL2xlZ2FjeS9sZWdhY3ktT3NoLXA0MjAnO1xuY29uc3QgUEVORElOR19UUkFOU0FDVElPTlNfSUZSQU1FID0gJ3A0MjAuYXNweCc7XG5jb25zdCBDSEFOR0VfUEFTU1dPUkRfVVJMID0gL2h0dHBzOlxcL1xcL3d3d1xcLm1penJhaGktdGVmYWhvdFxcLmNvXFwuaWxcXC9sb2dpblxcL2luZGV4XFwuaHRtbCNcXC9jaGFuZ2UtcGFzcy87XG5jb25zdCBEQVRFX0ZPUk1BVCA9ICdERC9NTS9ZWVlZJztcbmNvbnN0IE1BWF9ST1dTX1BFUl9SRVFVRVNUID0gMTAwMDAwMDAwMDA7XG5cbmNvbnN0IHVzZXJuYW1lU2VsZWN0b3IgPSAnI2VtYWlsRGVza3RvcEhlYic7XG5jb25zdCBwYXNzd29yZFNlbGVjdG9yID0gJyNwYXNzd29yZElERGVza3RvcEhFQic7XG5jb25zdCBzdWJtaXRCdXR0b25TZWxlY3RvciA9ICcuZm9ybS1kZXNrdG9wIGJ1dHRvbic7XG5jb25zdCBpbnZhbGlkUGFzc3dvcmRTZWxlY3RvciA9ICdhW2hyZWYqPVwiaHR0cHM6Ly9zYy5taXpyYWhpLXRlZmFob3QuY28uaWwvU0NTZXJ2aWNlcy9TQy9QMDEwLmFzcHhcIl0nO1xuY29uc3QgYWZ0ZXJMb2dpblNlbGVjdG9yID0gJyNkcm9wZG93bkJhc2ljJztcbmNvbnN0IGxvZ2luU3Bpbm5lclNlbGVjdG9yID0gJ2Rpdi5uZ3gtb3ZlcmxheS5sb2FkaW5nLWZvcmVncm91bmQnO1xuY29uc3QgYWNjb3VudERyb3BEb3duSXRlbVNlbGVjdG9yID0gJyNBY2NvdW50UGlja2VyIC5pdGVtJztcbmNvbnN0IHBlbmRpbmdUcnhJZGVudGlmaWVySWQgPSAnI2N0bDAwX0NvbnRlbnRQbGFjZUhvbGRlcjJfcGFuZWwxJztcbmNvbnN0IGNoZWNraW5nQWNjb3VudFRhYkhlYnJld05hbWUgPSAn16LXldeR16gg15XXqdeRJztcbmNvbnN0IGNoZWNraW5nQWNjb3VudFRhYkVuZ2xpc2hOYW1lID0gJ0NoZWNraW5nIEFjY291bnQnO1xuXG5mdW5jdGlvbiBjcmVhdGVMb2dpbkZpZWxkcyhjcmVkZW50aWFsczogU2NyYXBlclNwZWNpZmljQ3JlZGVudGlhbHMpIHtcbiAgcmV0dXJuIFtcbiAgICB7IHNlbGVjdG9yOiB1c2VybmFtZVNlbGVjdG9yLCB2YWx1ZTogY3JlZGVudGlhbHMudXNlcm5hbWUgfSxcbiAgICB7IHNlbGVjdG9yOiBwYXNzd29yZFNlbGVjdG9yLCB2YWx1ZTogY3JlZGVudGlhbHMucGFzc3dvcmQgfSxcbiAgXTtcbn1cblxuYXN5bmMgZnVuY3Rpb24gaXNMb2dnZWRJbihvcHRpb25zOiB7IHBhZ2U/OiBQYWdlIHwgdW5kZWZpbmVkIH0gfCB1bmRlZmluZWQpIHtcbiAgaWYgKCFvcHRpb25zPy5wYWdlKSB7XG4gICAgcmV0dXJuIGZhbHNlO1xuICB9XG4gIGNvbnN0IG9zaFhQYXRoID0gYC8vYS8vc3Bhbltjb250YWlucyguLCBcIiR7Y2hlY2tpbmdBY2NvdW50VGFiSGVicmV3TmFtZX1cIikgb3IgY29udGFpbnMoLiwgXCIke2NoZWNraW5nQWNjb3VudFRhYkVuZ2xpc2hOYW1lfVwiKV1gO1xuICBjb25zdCBvc2hUYWIgPSBhd2FpdCBvcHRpb25zLnBhZ2UuJCQoYHhwYXRoJHtvc2hYUGF0aH1gKTtcbiAgcmV0dXJuIG9zaFRhYi5sZW5ndGggPiAwO1xufVxuXG5mdW5jdGlvbiBnZXRQb3NzaWJsZUxvZ2luUmVzdWx0cyhwYWdlOiBQYWdlKTogUG9zc2libGVMb2dpblJlc3VsdHMge1xuICByZXR1cm4ge1xuICAgIFtMb2dpblJlc3VsdHMuU3VjY2Vzc106IFtBRlRFUl9MT0dJTl9CQVNFX1VSTCwgaXNMb2dnZWRJbl0sXG4gICAgW0xvZ2luUmVzdWx0cy5JbnZhbGlkUGFzc3dvcmRdOiBbYXN5bmMgKCkgPT4gISEoYXdhaXQgcGFnZS4kKGludmFsaWRQYXNzd29yZFNlbGVjdG9yKSldLFxuICAgIFtMb2dpblJlc3VsdHMuQ2hhbmdlUGFzc3dvcmRdOiBbQ0hBTkdFX1BBU1NXT1JEX1VSTF0sXG4gIH07XG59XG5cbmZ1bmN0aW9uIGdldFN0YXJ0TW9tZW50KG9wdGlvbnNTdGFydERhdGU6IERhdGUpIHtcbiAgY29uc3QgZGVmYXVsdFN0YXJ0TW9tZW50ID0gbW9tZW50KCkuc3VidHJhY3QoMSwgJ3llYXJzJyk7XG4gIGNvbnN0IHN0YXJ0RGF0ZSA9IG9wdGlvbnNTdGFydERhdGUgfHwgZGVmYXVsdFN0YXJ0TW9tZW50LnRvRGF0ZSgpO1xuICByZXR1cm4gbW9tZW50Lm1heChkZWZhdWx0U3RhcnRNb21lbnQsIG1vbWVudChzdGFydERhdGUpKTtcbn1cblxuZnVuY3Rpb24gY3JlYXRlRGF0YUZyb21SZXF1ZXN0KHJlcXVlc3Q6IEhUVFBSZXF1ZXN0LCBvcHRpb25zU3RhcnREYXRlOiBEYXRlKSB7XG4gIGNvbnN0IGRhdGEgPSBKU09OLnBhcnNlKHJlcXVlc3QucG9zdERhdGEoKSB8fCAne30nKTtcblxuICBkYXRhLmluRnJvbURhdGUgPSBnZXRTdGFydE1vbWVudChvcHRpb25zU3RhcnREYXRlKS5mb3JtYXQoREFURV9GT1JNQVQpO1xuICBkYXRhLmluVG9EYXRlID0gbW9tZW50KCkuZm9ybWF0KERBVEVfRk9STUFUKTtcbiAgZGF0YS50YWJsZS5tYXhSb3cgPSBNQVhfUk9XU19QRVJfUkVRVUVTVDtcblxuICByZXR1cm4gZGF0YTtcbn1cblxuZnVuY3Rpb24gY3JlYXRlSGVhZGVyc0Zyb21SZXF1ZXN0KHJlcXVlc3Q6IEhUVFBSZXF1ZXN0KSB7XG4gIHJldHVybiB7XG4gICAgJ21penJhaGl4c3JmdG9rZW4nOiByZXF1ZXN0LmhlYWRlcnMoKS5taXpyYWhpeHNyZnRva2VuLFxuICAgICdDb250ZW50LVR5cGUnOiByZXF1ZXN0LmhlYWRlcnMoKVsnY29udGVudC10eXBlJ10sXG4gIH07XG59XG5cbmZ1bmN0aW9uIGNvbnZlcnRUcmFuc2FjdGlvbnModHhuczogU2NyYXBlZFRyYW5zYWN0aW9uW10pOiBUcmFuc2FjdGlvbltdIHtcbiAgcmV0dXJuIHR4bnMubWFwKChyb3cpID0+IHtcbiAgICBjb25zdCB0eG5EYXRlID0gbW9tZW50KHJvdy5NQzAyUGV1bGFUYWFFWiwgbW9tZW50LkhUTUw1X0ZNVC5EQVRFVElNRV9MT0NBTF9TRUNPTkRTKVxuICAgICAgLnRvSVNPU3RyaW5nKCk7XG5cbiAgICByZXR1cm4ge1xuICAgICAgdHlwZTogVHJhbnNhY3Rpb25UeXBlcy5Ob3JtYWwsXG4gICAgICBpZGVudGlmaWVyOiByb3cuTUMwMkFzbWFodGFNZWtvcml0RVogPyBwYXJzZUludChyb3cuTUMwMkFzbWFodGFNZWtvcml0RVosIDEwKSA6IHVuZGVmaW5lZCxcbiAgICAgIGRhdGU6IHR4bkRhdGUsXG4gICAgICBwcm9jZXNzZWREYXRlOiB0eG5EYXRlLFxuICAgICAgb3JpZ2luYWxBbW91bnQ6IHJvdy5NQzAyU2NodW1FWixcbiAgICAgIG9yaWdpbmFsQ3VycmVuY3k6IFNIRUtFTF9DVVJSRU5DWSxcbiAgICAgIGNoYXJnZWRBbW91bnQ6IHJvdy5NQzAyU2NodW1FWixcbiAgICAgIGRlc2NyaXB0aW9uOiByb3cuTUMwMlRudWFUZXVyRVosXG4gICAgICBzdGF0dXM6IFRyYW5zYWN0aW9uU3RhdHVzZXMuQ29tcGxldGVkLFxuICAgIH07XG4gIH0pO1xufVxuXG5hc3luYyBmdW5jdGlvbiBleHRyYWN0UGVuZGluZ1RyYW5zYWN0aW9ucyhwYWdlOiBGcmFtZSk6IFByb21pc2U8VHJhbnNhY3Rpb25bXT4ge1xuICBjb25zdCBwZW5kaW5nVHhuID0gYXdhaXQgcGFnZUV2YWxBbGwocGFnZSwgJ3RyLnJnUm93JywgW10sICh0cnMpID0+IHtcbiAgICByZXR1cm4gdHJzLm1hcCgodHIpID0+IEFycmF5LmZyb20odHIucXVlcnlTZWxlY3RvckFsbCgndGQnKSwgKHRkOiBIVE1MVGFibGVEYXRhQ2VsbEVsZW1lbnQpID0+IHRkLnRleHRDb250ZW50IHx8ICcnKSk7XG4gIH0pO1xuXG4gIHJldHVybiBwZW5kaW5nVHhuLm1hcCgodHhuKSA9PiB7XG4gICAgY29uc3QgZGF0ZSA9IG1vbWVudCh0eG5bMF0sICdERC9NTS9ZWScpLnRvSVNPU3RyaW5nKCk7XG4gICAgY29uc3QgYW1vdW50ID0gcGFyc2VJbnQodHhuWzNdLCAxMCk7XG4gICAgcmV0dXJuIHtcbiAgICAgIHR5cGU6IFRyYW5zYWN0aW9uVHlwZXMuTm9ybWFsLFxuICAgICAgZGF0ZSxcbiAgICAgIHByb2Nlc3NlZERhdGU6IGRhdGUsXG4gICAgICBvcmlnaW5hbEFtb3VudDogYW1vdW50LFxuICAgICAgb3JpZ2luYWxDdXJyZW5jeTogU0hFS0VMX0NVUlJFTkNZLFxuICAgICAgY2hhcmdlZEFtb3VudDogYW1vdW50LFxuICAgICAgZGVzY3JpcHRpb246IHR4blsxXSxcbiAgICAgIHN0YXR1czogVHJhbnNhY3Rpb25TdGF0dXNlcy5QZW5kaW5nLFxuICAgIH07XG4gIH0pO1xufVxuXG5hc3luYyBmdW5jdGlvbiBwb3N0TG9naW4ocGFnZTogUGFnZSkge1xuICBhd2FpdCBQcm9taXNlLnJhY2UoW1xuICAgIHdhaXRVbnRpbEVsZW1lbnRGb3VuZChwYWdlLCBhZnRlckxvZ2luU2VsZWN0b3IpLFxuICAgIHdhaXRVbnRpbEVsZW1lbnRGb3VuZChwYWdlLCBpbnZhbGlkUGFzc3dvcmRTZWxlY3RvciksXG4gICAgd2FpdEZvclVybChwYWdlLCBDSEFOR0VfUEFTU1dPUkRfVVJMKSxcbiAgXSk7XG59XG5cbnR5cGUgU2NyYXBlclNwZWNpZmljQ3JlZGVudGlhbHMgPSB7IHVzZXJuYW1lOiBzdHJpbmcsIHBhc3N3b3JkOiBzdHJpbmcgfTtcblxuY2xhc3MgTWl6cmFoaVNjcmFwZXIgZXh0ZW5kcyBCYXNlU2NyYXBlcldpdGhCcm93c2VyPFNjcmFwZXJTcGVjaWZpY0NyZWRlbnRpYWxzPiB7XG4gIGdldExvZ2luT3B0aW9ucyhjcmVkZW50aWFsczogU2NyYXBlclNwZWNpZmljQ3JlZGVudGlhbHMpIHtcbiAgICByZXR1cm4ge1xuICAgICAgbG9naW5Vcmw6IExPR0lOX1VSTCxcbiAgICAgIGZpZWxkczogY3JlYXRlTG9naW5GaWVsZHMoY3JlZGVudGlhbHMpLFxuICAgICAgc3VibWl0QnV0dG9uU2VsZWN0b3IsXG4gICAgICBjaGVja1JlYWRpbmVzczogYXN5bmMgKCkgPT4gd2FpdFVudGlsRWxlbWVudERpc2FwcGVhcih0aGlzLnBhZ2UsIGxvZ2luU3Bpbm5lclNlbGVjdG9yKSxcbiAgICAgIHBvc3RBY3Rpb246IGFzeW5jICgpID0+IHBvc3RMb2dpbih0aGlzLnBhZ2UpLFxuICAgICAgcG9zc2libGVSZXN1bHRzOiBnZXRQb3NzaWJsZUxvZ2luUmVzdWx0cyh0aGlzLnBhZ2UpLFxuICAgIH07XG4gIH1cblxuICBhc3luYyBmZXRjaERhdGEoKSB7XG4gICAgYXdhaXQgdGhpcy5wYWdlLiRldmFsKCcjZHJvcGRvd25CYXNpYywgLml0ZW0nLCAoZWwpID0+IChlbCBhcyBIVE1MRWxlbWVudCkuY2xpY2soKSk7XG5cbiAgICBjb25zdCBudW1PZkFjY291bnRzID0gKGF3YWl0IHRoaXMucGFnZS4kJChhY2NvdW50RHJvcERvd25JdGVtU2VsZWN0b3IpKS5sZW5ndGg7XG5cbiAgICB0cnkge1xuICAgICAgY29uc3QgcmVzdWx0czogVHJhbnNhY3Rpb25zQWNjb3VudFtdID0gW107XG5cbiAgICAgIGZvciAobGV0IGkgPSAwOyBpIDwgbnVtT2ZBY2NvdW50czsgaSArPSAxKSB7XG4gICAgICAgIGlmIChpID4gMCkge1xuICAgICAgICAgIGF3YWl0IHRoaXMucGFnZS4kZXZhbCgnI2Ryb3Bkb3duQmFzaWMsIC5pdGVtJywgKGVsKSA9PiAoZWwgYXMgSFRNTEVsZW1lbnQpLmNsaWNrKCkpO1xuICAgICAgICB9XG5cbiAgICAgICAgYXdhaXQgdGhpcy5wYWdlLiRldmFsKGAke2FjY291bnREcm9wRG93bkl0ZW1TZWxlY3Rvcn06bnRoLWNoaWxkKCR7aSArIDF9KWAsIChlbCkgPT4gKGVsIGFzIEhUTUxFbGVtZW50KS5jbGljaygpKTtcbiAgICAgICAgcmVzdWx0cy5wdXNoKChhd2FpdCB0aGlzLmZldGNoQWNjb3VudCgpKSk7XG4gICAgICB9XG5cbiAgICAgIHJldHVybiB7XG4gICAgICAgIHN1Y2Nlc3M6IHRydWUsXG4gICAgICAgIGFjY291bnRzOiByZXN1bHRzLFxuICAgICAgfTtcbiAgICB9IGNhdGNoIChlKSB7XG4gICAgICByZXR1cm4ge1xuICAgICAgICBzdWNjZXNzOiBmYWxzZSxcbiAgICAgICAgZXJyb3JUeXBlOiBTY3JhcGVyRXJyb3JUeXBlcy5HZW5lcmljLFxuICAgICAgICBlcnJvck1lc3NhZ2U6IChlIGFzIEVycm9yKS5tZXNzYWdlLFxuICAgICAgfTtcbiAgICB9XG4gIH1cblxuICBwcml2YXRlIGFzeW5jIGdldFBlbmRpbmdUcmFuc2FjdGlvbnMoKTogUHJvbWlzZTxUcmFuc2FjdGlvbltdPiB7XG4gICAgYXdhaXQgdGhpcy5wYWdlLiRldmFsKGBhW2hyZWYqPVwiJHtQRU5ESU5HX1RSQU5TQUNUSU9OU19QQUdFfVwiXWAsIChlbCkgPT4gKGVsIGFzIEhUTUxFbGVtZW50KS5jbGljaygpKTtcbiAgICBjb25zdCBmcmFtZSA9IGF3YWl0IHdhaXRVbnRpbElmcmFtZUZvdW5kKHRoaXMucGFnZSwgKGYpID0+IGYudXJsKCkuaW5jbHVkZXMoUEVORElOR19UUkFOU0FDVElPTlNfSUZSQU1FKSk7XG4gICAgY29uc3QgaXNQZW5kaW5nID0gYXdhaXQgd2FpdFVudGlsRWxlbWVudEZvdW5kKGZyYW1lLCBwZW5kaW5nVHJ4SWRlbnRpZmllcklkKS50aGVuKCgpID0+IHRydWUpLmNhdGNoKCgpID0+IGZhbHNlKTtcbiAgICBpZiAoIWlzUGVuZGluZykge1xuICAgICAgcmV0dXJuIFtdO1xuICAgIH1cblxuICAgIGNvbnN0IHBlbmRpbmdUeG4gPSBhd2FpdCBleHRyYWN0UGVuZGluZ1RyYW5zYWN0aW9ucyhmcmFtZSk7XG4gICAgcmV0dXJuIHBlbmRpbmdUeG47XG4gIH1cblxuICBwcml2YXRlIGFzeW5jIGZldGNoQWNjb3VudCgpIHtcbiAgICBhd2FpdCB0aGlzLnBhZ2Uud2FpdEZvclNlbGVjdG9yKGBhW2hyZWYqPVwiJHtPU0hfUEFHRX1cIl1gKTtcbiAgICBhd2FpdCB0aGlzLnBhZ2UuJGV2YWwoYGFbaHJlZio9XCIke09TSF9QQUdFfVwiXWAsIChlbCkgPT4gKGVsIGFzIEhUTUxFbGVtZW50KS5jbGljaygpKTtcbiAgICBhd2FpdCB3YWl0VW50aWxFbGVtZW50Rm91bmQodGhpcy5wYWdlLCBgYVtocmVmKj1cIiR7VFJBTlNBQ1RJT05TX1BBR0V9XCJdYCk7XG4gICAgYXdhaXQgdGhpcy5wYWdlLiRldmFsKGBhW2hyZWYqPVwiJHtUUkFOU0FDVElPTlNfUEFHRX1cIl1gLCAoZWwpID0+IChlbCBhcyBIVE1MRWxlbWVudCkuY2xpY2soKSk7XG5cbiAgICBjb25zdCBhY2NvdW50TnVtYmVyRWxlbWVudCA9IGF3YWl0IHRoaXMucGFnZS4kKCcjZHJvcGRvd25CYXNpYyBiIHNwYW4nKTtcbiAgICBjb25zdCBhY2NvdW50TnVtYmVySGFuZGxlID0gYXdhaXQgYWNjb3VudE51bWJlckVsZW1lbnQ/LmdldFByb3BlcnR5KCd0aXRsZScpO1xuICAgIGNvbnN0IGFjY291bnROdW1iZXIgPSAoKGF3YWl0IGFjY291bnROdW1iZXJIYW5kbGU/Lmpzb25WYWx1ZSgpKSBhcyBzdHJpbmcpO1xuICAgIGlmICghYWNjb3VudE51bWJlcikge1xuICAgICAgdGhyb3cgbmV3IEVycm9yKCdBY2NvdW50IG51bWJlciBub3QgZm91bmQnKTtcbiAgICB9XG5cbiAgICBjb25zdCByZXNwb25zZSA9IGF3YWl0IFByb21pc2UuYW55KFRSQU5TQUNUSU9OU19SRVFVRVNUX1VSTFMubWFwKGFzeW5jICh1cmwpID0+IHtcbiAgICAgIGNvbnN0IHJlcXVlc3QgPSBhd2FpdCB0aGlzLnBhZ2Uud2FpdEZvclJlcXVlc3QodXJsKTtcbiAgICAgIGNvbnN0IGRhdGEgPSBjcmVhdGVEYXRhRnJvbVJlcXVlc3QocmVxdWVzdCwgdGhpcy5vcHRpb25zLnN0YXJ0RGF0ZSk7XG4gICAgICBjb25zdCBoZWFkZXJzID0gY3JlYXRlSGVhZGVyc0Zyb21SZXF1ZXN0KHJlcXVlc3QpO1xuXG4gICAgICByZXR1cm4gZmV0Y2hQb3N0V2l0aGluUGFnZTxTY3JhcGVkVHJhbnNhY3Rpb25zUmVzdWx0Pih0aGlzLnBhZ2UsIHVybCwgZGF0YSwgaGVhZGVycyk7XG4gICAgfSkpO1xuXG4gICAgaWYgKCFyZXNwb25zZSB8fCByZXNwb25zZS5oZWFkZXIuc3VjY2VzcyA9PT0gZmFsc2UpIHtcbiAgICAgIHRocm93IG5ldyBFcnJvcihgRXJyb3IgZmV0Y2hpbmcgdHJhbnNhY3Rpb24uIFJlc3BvbnNlIG1lc3NhZ2U6ICR7cmVzcG9uc2UgPyByZXNwb25zZS5oZWFkZXIubWVzc2FnZXNbMF0udGV4dCA6ICcnfWApO1xuICAgIH1cblxuICAgIGNvbnN0IHJlbGV2YW50Um93cyA9IHJlc3BvbnNlLmJvZHkudGFibGUucm93cy5maWx0ZXIoKHJvdykgPT4gcm93LlJlY1R5cGVTcGVjaWZpZWQpO1xuICAgIGNvbnN0IG9zaFR4biA9IGNvbnZlcnRUcmFuc2FjdGlvbnMocmVsZXZhbnRSb3dzKTtcblxuICAgIC8vIHdvcmthcm91bmQgZm9yIGEgYnVnIHdoaWNoIHRoZSBiYW5rJ3MgQVBJIHJldHVybnMgdHJhbnNhY3Rpb25zIGJlZm9yZSB0aGUgcmVxdWVzdGVkIHN0YXJ0IGRhdGVcbiAgICBjb25zdCBzdGFydE1vbWVudCA9IGdldFN0YXJ0TW9tZW50KHRoaXMub3B0aW9ucy5zdGFydERhdGUpO1xuICAgIGNvbnN0IG9zaFR4bkFmdGVyU3RhcnREYXRlID0gb3NoVHhuLmZpbHRlcigodHhuKSA9PiBtb21lbnQodHhuLmRhdGUpLmlzU2FtZU9yQWZ0ZXIoc3RhcnRNb21lbnQpKTtcblxuICAgIGNvbnN0IHBlbmRpbmdUeG4gPSBhd2FpdCB0aGlzLmdldFBlbmRpbmdUcmFuc2FjdGlvbnMoKTtcbiAgICBjb25zdCBhbGxUeG4gPSBvc2hUeG5BZnRlclN0YXJ0RGF0ZS5jb25jYXQocGVuZGluZ1R4bik7XG5cbiAgICByZXR1cm4ge1xuICAgICAgYWNjb3VudE51bWJlcixcbiAgICAgIHR4bnM6IGFsbFR4bixcbiAgICAgIGJhbGFuY2U6ICtyZXNwb25zZS5ib2R5LmZpZWxkcz8uWWl0cmEsXG4gICAgfTtcbiAgfVxufVxuXG5leHBvcnQgZGVmYXVsdCBNaXpyYWhpU2NyYXBlcjtcbiJdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7OztBQUFBLElBQUFBLE9BQUEsR0FB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
|