appium-remote-debugger 9.1.2 → 9.1.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.
- package/README.md +1 -13
- package/build/index.js +2 -4
- package/build/lib/atoms.js +2 -4
- package/build/lib/logger.js +2 -4
- package/build/lib/mixins/connect.js +2 -4
- package/build/lib/mixins/events.js +2 -4
- package/build/lib/mixins/execute.js +2 -4
- package/build/lib/mixins/index.js +2 -4
- package/build/lib/mixins/message-handlers.js +2 -4
- package/build/lib/mixins/navigate.js +2 -4
- package/build/lib/protocol/index.js +2 -4
- package/build/lib/remote-debugger-real-device.js +2 -4
- package/build/lib/remote-debugger.js +2 -4
- package/build/lib/rpc/index.js +2 -4
- package/build/lib/rpc/remote-messages.js +2 -4
- package/build/lib/rpc/rpc-client-real-device.js +2 -4
- package/build/lib/rpc/rpc-client-simulator.js +2 -4
- package/build/lib/rpc/rpc-client.js +2 -4
- package/build/lib/rpc/rpc-message-handler.js +2 -4
- package/build/lib/utils.js +2 -4
- package/package.json +46 -23
- package/scripts/build-atoms.js +6 -0
- package/scripts/build-selenium.js +3 -0
- package/scripts/common.js +194 -0
- package/scripts/import-atoms.js +3 -0
|
@@ -226,7 +226,5 @@ class RpcMessageHandler extends _events.default {
|
|
|
226
226
|
|
|
227
227
|
}
|
|
228
228
|
|
|
229
|
-
exports.default = RpcMessageHandler;
|
|
230
|
-
|
|
231
|
-
|
|
232
|
-
//# sourceMappingURL=data:application/json;charset=utf8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibGliL3JwYy9ycGMtbWVzc2FnZS1oYW5kbGVyLmpzIiwibmFtZXMiOlsiUnBjTWVzc2FnZUhhbmRsZXIiLCJFdmVudEVtaXR0ZXJzIiwiY29uc3RydWN0b3IiLCJpc1RhcmdldEJhc2VkIiwiX2lzVGFyZ2V0QmFzZWQiLCJoYW5kbGVNZXNzYWdlIiwicGxpc3QiLCJzZWxlY3RvciIsIl9fc2VsZWN0b3IiLCJsb2ciLCJkZWJ1ZyIsImFyZ3VtZW50IiwiX19hcmd1bWVudCIsImVtaXQiLCJXSVJTaW11bGF0b3JOYW1lS2V5IiwiV0lSU2ltdWxhdG9yQnVpbGRLZXkiLCJXSVJTaW11bGF0b3JQcm9kdWN0VmVyc2lvbktleSIsIldJUkFwcGxpY2F0aW9uRGljdGlvbmFyeUtleSIsIldJUkFwcGxpY2F0aW9uSWRlbnRpZmllcktleSIsIldJUkxpc3RpbmdLZXkiLCJoYW5kbGVEYXRhTWVzc2FnZSIsInBhcnNlRGF0YUtleSIsIkpTT04iLCJwYXJzZSIsIldJUk1lc3NhZ2VEYXRhS2V5IiwidG9TdHJpbmciLCJlcnIiLCJlcnJvciIsIl8iLCJ0cnVuY2F0ZSIsInN0cmluZ2lmeSIsImxlbmd0aCIsIkVycm9yIiwibWVzc2FnZSIsImRpc3BhdGNoRGF0YU1lc3NhZ2UiLCJtc2dJZCIsIm1ldGhvZCIsInBhcmFtcyIsInJlc3VsdCIsImlzRW1wdHkiLCJsaXN0ZW5lckNvdW50IiwiaGFzIiwidmFsdWUiLCJldmVudE5hbWVzIiwiYXJncyIsInB1c2giLCJyZWNvcmQiLCJjb250ZXh0Iiwic3RhcnRzV2l0aCIsIm5hbWUiLCJkYXRhS2V5IiwiaWQiLCJhcHAiLCJ0YXJnZXRJbmZvIiwib2xkVGFyZ2V0SWQiLCJuZXdUYXJnZXRJZCIsInRhcmdldElkIiwid2FybiIsInV0aWwiLCJqc29uU3RyaW5naWZ5Iiwid2FzVGhyb3duIiwiZGVzY3JpcHRpb24iXSwic291cmNlUm9vdCI6Ii4uLy4uLy4uIiwic291cmNlcyI6WyJsaWIvcnBjL3JwYy1tZXNzYWdlLWhhbmRsZXIuanMiXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IGxvZyBmcm9tICcuLi9sb2dnZXInO1xuaW1wb3J0IF8gZnJvbSAnbG9kYXNoJztcbmltcG9ydCB7IHV0aWwgfSBmcm9tICdhcHBpdW0vc3VwcG9ydCc7XG5pbXBvcnQgRXZlbnRFbWl0dGVycyBmcm9tICdldmVudHMnO1xuXG5cbmV4cG9ydCBkZWZhdWx0IGNsYXNzIFJwY01lc3NhZ2VIYW5kbGVyIGV4dGVuZHMgRXZlbnRFbWl0dGVycyB7XG4gIGNvbnN0cnVjdG9yIChpc1RhcmdldEJhc2VkID0gZmFsc2UpIHtcbiAgICBzdXBlcigpO1xuXG4gICAgdGhpcy5pc1RhcmdldEJhc2VkID0gaXNUYXJnZXRCYXNlZDtcbiAgfVxuXG4gIGdldCBpc1RhcmdldEJhc2VkICgpIHtcbiAgICByZXR1cm4gdGhpcy5faXNUYXJnZXRCYXNlZDtcbiAgfVxuXG4gIHNldCBpc1RhcmdldEJhc2VkIChpc1RhcmdldEJhc2VkKSB7XG4gICAgdGhpcy5faXNUYXJnZXRCYXNlZCA9ICEhaXNUYXJnZXRCYXNlZDtcbiAgfVxuXG4gIGFzeW5jIGhhbmRsZU1lc3NhZ2UgKHBsaXN0KSB7XG4gICAgY29uc3Qgc2VsZWN0b3IgPSBwbGlzdC5fX3NlbGVjdG9yO1xuICAgIGlmICghc2VsZWN0b3IpIHtcbiAgICAgIGxvZy5kZWJ1ZygnR290IGFuIGludmFsaWQgcGxpc3QnKTtcbiAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICBjb25zdCBhcmd1bWVudCA9IHBsaXN0Ll9fYXJndW1lbnQ7XG4gICAgc3dpdGNoIChzZWxlY3Rvcikge1xuICAgICAgY2FzZSAnX3JwY19yZXBvcnRTZXR1cDonOlxuICAgICAgICB0aGlzLmVtaXQoJ19ycGNfcmVwb3J0U2V0dXA6JyxcbiAgICAgICAgICBudWxsLFxuICAgICAgICAgIGFyZ3VtZW50LldJUlNpbXVsYXRvck5hbWVLZXksXG4gICAgICAgICAgYXJndW1lbnQuV0lSU2ltdWxhdG9yQnVpbGRLZXksXG4gICAgICAgICAgYXJndW1lbnQuV0lSU2ltdWxhdG9yUHJvZHVjdFZlcnNpb25LZXlcbiAgICAgICAgKTtcbiAgICAgICAgYnJlYWs7XG4gICAgICBjYXNlICdfcnBjX3JlcG9ydENvbm5lY3RlZEFwcGxpY2F0aW9uTGlzdDonOlxuICAgICAgICB0aGlzLmVtaXQoJ19ycGNfcmVwb3J0Q29ubmVjdGVkQXBwbGljYXRpb25MaXN0OicsXG4gICAgICAgICAgbnVsbCxcbiAgICAgICAgICBhcmd1bWVudC5XSVJBcHBsaWNhdGlvbkRpY3Rpb25hcnlLZXlcbiAgICAgICAgKTtcbiAgICAgICAgYnJlYWs7XG4gICAgICBjYXNlICdfcnBjX2FwcGxpY2F0aW9uU2VudExpc3Rpbmc6JzpcbiAgICAgICAgdGhpcy5lbWl0KCdfcnBjX2ZvcndhcmRHZXRMaXN0aW5nOicsXG4gICAgICAgICAgbnVsbCxcbiAgICAgICAgICBhcmd1bWVudC5XSVJBcHBsaWNhdGlvbklkZW50aWZpZXJLZXksXG4gICAgICAgICAgYXJndW1lbnQuV0lSTGlzdGluZ0tleVxuICAgICAgICApO1xuICAgICAgICBicmVhaztcbiAgICAgIGNhc2UgJ19ycGNfYXBwbGljYXRpb25Db25uZWN0ZWQ6JzpcbiAgICAgICAgdGhpcy5lbWl0KCdfcnBjX2FwcGxpY2F0aW9uQ29ubmVjdGVkOicsIG51bGwsIGFyZ3VtZW50KTtcbiAgICAgICAgYnJlYWs7XG4gICAgICBjYXNlICdfcnBjX2FwcGxpY2F0aW9uRGlzY29ubmVjdGVkOic6XG4gICAgICAgIHRoaXMuZW1pdCgnX3JwY19hcHBsaWNhdGlvbkRpc2Nvbm5lY3RlZDonLCBudWxsLCBhcmd1bWVudCk7XG4gICAgICAgIGJyZWFrO1xuICAgICAgY2FzZSAnX3JwY19hcHBsaWNhdGlvblVwZGF0ZWQ6JzpcbiAgICAgICAgdGhpcy5lbWl0KCdfcnBjX2FwcGxpY2F0aW9uVXBkYXRlZDonLCBudWxsLCBhcmd1bWVudCk7XG4gICAgICAgIGJyZWFrO1xuICAgICAgY2FzZSAnX3JwY19yZXBvcnRDb25uZWN0ZWREcml2ZXJMaXN0Oic6XG4gICAgICAgIHRoaXMuZW1pdCgnX3JwY19yZXBvcnRDb25uZWN0ZWREcml2ZXJMaXN0OicsIG51bGwsIGFyZ3VtZW50KTtcbiAgICAgICAgYnJlYWs7XG4gICAgICBjYXNlICdfcnBjX3JlcG9ydEN1cnJlbnRTdGF0ZTonOlxuICAgICAgICB0aGlzLmVtaXQoJ19ycGNfcmVwb3J0Q3VycmVudFN0YXRlOicsIG51bGwsIGFyZ3VtZW50KTtcbiAgICAgICAgYnJlYWs7XG4gICAgICBjYXNlICdfcnBjX2FwcGxpY2F0aW9uU2VudERhdGE6JzpcbiAgICAgICAgYXdhaXQgdGhpcy5oYW5kbGVEYXRhTWVzc2FnZShwbGlzdCk7XG4gICAgICAgIGJyZWFrO1xuICAgICAgZGVmYXVsdDpcbiAgICAgICAgbG9nLmRlYnVnKGBEZWJ1Z2dlciBnb3QgYSBtZXNzYWdlIGZvciAnJHtzZWxlY3Rvcn0nIGFuZCBoYXZlIG5vIGAgK1xuICAgICAgICAgIGBoYW5kbGVyLCBkb2luZyBub3RoaW5nLmApO1xuICAgIH1cbiAgfVxuXG4gIHBhcnNlRGF0YUtleSAocGxpc3QpIHtcbiAgICB0cnkge1xuICAgICAgcmV0dXJuIEpTT04ucGFyc2UocGxpc3QuX19hcmd1bWVudC5XSVJNZXNzYWdlRGF0YUtleS50b1N0cmluZygndXRmOCcpKTtcbiAgICB9IGNhdGNoIChlcnIpIHtcbiAgICAgIGxvZy5lcnJvcihgVW5wYXJzZWFibGUgbWVzc2FnZSBkYXRhOiAke18udHJ1bmNhdGUoSlNPTi5zdHJpbmdpZnkocGxpc3QpLCB7bGVuZ3RoOiAxMDB9KX1gKTtcbiAgICAgIHRocm93IG5ldyBFcnJvcihgVW5hYmxlIHRvIHBhcnNlIG1lc3NhZ2UgZGF0YTogJHtlcnIubWVzc2FnZX1gKTtcbiAgICB9XG4gIH1cblxuICBhc3luYyBkaXNwYXRjaERhdGFNZXNzYWdlIChtc2dJZCwgbWV0aG9kLCBwYXJhbXMsIHJlc3VsdCwgZXJyb3IpIHsgLy8gZXNsaW50LWRpc2FibGUtbGluZSByZXF1aXJlLWF3YWl0XG4gICAgaWYgKCFfLmlzRW1wdHkobXNnSWQpKSB7XG4gICAgICBsb2cuZGVidWcoYEhhbmRsaW5nIG1lc3NhZ2UgKGlkOiAnJHttc2dJZH0nKWApO1xuICAgIH1cblxuICAgIGlmIChtc2dJZCkge1xuICAgICAgaWYgKHRoaXMubGlzdGVuZXJDb3VudChtc2dJZCkpIHtcbiAgICAgICAgaWYgKF8uaGFzKHJlc3VsdD8ucmVzdWx0LCAndmFsdWUnKSkge1xuICAgICAgICAgIHJlc3VsdCA9IHJlc3VsdC5yZXN1bHQudmFsdWU7XG4gICAgICAgIH1cbiAgICAgICAgdGhpcy5lbWl0KG1zZ0lkLCBlcnJvciwgcmVzdWx0KTtcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIGxvZy5lcnJvcihgV2ViIEluc3BlY3RvciByZXR1cm5lZCBkYXRhIGZvciBtZXNzYWdlICcke21zZ0lkfScgYCArXG4gICAgICAgICAgYGJ1dCB3ZSB3ZXJlIG5vdCB3YWl0aW5nIGZvciB0aGF0IG1lc3NhZ2UhIGAgK1xuICAgICAgICAgIGByZXN1bHQ6ICcke0pTT04uc3RyaW5naWZ5KHJlc3VsdCl9JzsgYCArXG4gICAgICAgICAgYGVycm9yOiAnJHtKU09OLnN0cmluZ2lmeShlcnJvcil9J2ApO1xuICAgICAgfVxuICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIGxldCBldmVudE5hbWVzID0gW21ldGhvZF07XG4gICAgbGV0IGFyZ3MgPSBbcGFyYW1zXTtcblxuICAgIC8vIHNvbWUgZXZlbnRzIGhhdmUgZGlmZmVyZW50IG5hbWVzLCBvciB0aGUgYXJndW1lbnRzIGFyZSBtYXBwZWQgZnJvbSB0aGVcbiAgICAvLyBwYXJhbWV0ZXJzIHJlY2VpdmVkXG4gICAgc3dpdGNoIChtZXRob2QpIHtcbiAgICAgIGNhc2UgJ1BhZ2UuZnJhbWVTdG9wcGVkTG9hZGluZyc6XG4gICAgICAgIGV2ZW50TmFtZXMucHVzaCgnUGFnZS5mcmFtZU5hdmlnYXRlZCcpO1xuICAgICAgICAvLyBlc2xpbnQtZGlzYWJsZS1saW5lIG5vLWZhbGx0aHJvdWdoXG4gICAgICBjYXNlICdQYWdlLmZyYW1lTmF2aWdhdGVkJzpcbiAgICAgICAgYXJncyA9IFtgJyR7bWV0aG9kfScgZXZlbnRgXTtcbiAgICAgICAgYnJlYWs7XG4gICAgICBjYXNlICdUaW1lbGluZS5ldmVudFJlY29yZGVkJzpcbiAgICAgICAgYXJncyA9IFtwYXJhbXMgfHwgcGFyYW1zLnJlY29yZF07XG4gICAgICAgIGJyZWFrO1xuICAgICAgY2FzZSAnQ29uc29sZS5tZXNzYWdlQWRkZWQnOlxuICAgICAgICBhcmdzID0gW3BhcmFtcy5tZXNzYWdlXTtcbiAgICAgICAgYnJlYWs7XG4gICAgICBjYXNlICdSdW50aW1lLmV4ZWN1dGlvbkNvbnRleHRDcmVhdGVkJzpcbiAgICAgICAgYXJncyA9IFtwYXJhbXMuY29udGV4dF07XG4gICAgICAgIGJyZWFrO1xuICAgICAgZGVmYXVsdDpcbiAgICAgICAgLy8gcGFzc1xuICAgICAgICBicmVhaztcbiAgICB9XG5cbiAgICBpZiAoXy5zdGFydHNXaXRoKG1ldGhvZCwgJ05ldHdvcmsuJykpIHtcbiAgICAgIC8vIGFnZ3JlZ2F0ZSBOZXR3b3JrIGV2ZW50cywgYW5kIGFkZCBvcmlnaW5hbCBtZXRob2QgbmFtZSB0byB0aGUgYXJndW1lbnRzXG4gICAgICBldmVudE5hbWVzLnB1c2goJ05ldHdvcmtFdmVudCcpO1xuICAgICAgYXJncy5wdXNoKG1ldGhvZCk7XG4gICAgfVxuICAgIGlmIChfLnN0YXJ0c1dpdGgobWV0aG9kLCAnQ29uc29sZS4nKSkge1xuICAgICAgLy8gYWdncmVnYXRlIE5ldHdvcmsgZXZlbnRzLCBhbmQgYWRkIG9yaWdpbmFsIG1ldGhvZCBuYW1lIHRvIHRoZSBhcmd1bWVudHNcbiAgICAgIGV2ZW50TmFtZXMucHVzaCgnQ29uc29sZUV2ZW50Jyk7XG4gICAgICBhcmdzLnB1c2gobWV0aG9kKTtcbiAgICB9XG5cbiAgICBmb3IgKGNvbnN0IG5hbWUgb2YgZXZlbnROYW1lcykge1xuICAgICAgdGhpcy5lbWl0KG5hbWUsIGVycm9yLCAuLi5hcmdzKTtcbiAgICB9XG4gIH1cblxuICBhc3luYyBoYW5kbGVEYXRhTWVzc2FnZSAocGxpc3QpIHtcbiAgICBjb25zdCBkYXRhS2V5ID0gdGhpcy5wYXJzZURhdGFLZXkocGxpc3QpO1xuICAgIGxldCBtc2dJZCA9IChkYXRhS2V5LmlkIHx8ICcnKS50b1N0cmluZygpO1xuICAgIGxldCByZXN1bHQgPSBkYXRhS2V5LnJlc3VsdDtcblxuICAgIGxldCBtZXRob2QgPSBkYXRhS2V5Lm1ldGhvZDtcbiAgICBsZXQgcGFyYW1zO1xuXG4gICAgaWYgKG1ldGhvZCA9PT0gJ1RhcmdldC50YXJnZXRDcmVhdGVkJykge1xuICAgICAgLy8gdGhpcyBpcyBpbiByZXNwb25zZSB0byBhIGBfcnBjX2ZvcndhcmRTb2NrZXRTZXR1cDpgIGNhbGxcbiAgICAgIC8vIHRhcmdldEluZm86IHsgdGFyZ2V0SWQ6ICdwYWdlLTEnLCB0eXBlOiAncGFnZScgfVxuICAgICAgY29uc3QgYXBwID0gcGxpc3QuX19hcmd1bWVudC5XSVJBcHBsaWNhdGlvbklkZW50aWZpZXJLZXk7XG4gICAgICBjb25zdCB0YXJnZXRJbmZvID0gZGF0YUtleS5wYXJhbXMudGFyZ2V0SW5mbztcbiAgICAgIHRoaXMuZW1pdCgnVGFyZ2V0LnRhcmdldENyZWF0ZWQnLCBudWxsLCBhcHAsIHRhcmdldEluZm8pO1xuICAgICAgcmV0dXJuO1xuICAgIH0gZWxzZSBpZiAobWV0aG9kID09PSAnVGFyZ2V0LmRpZENvbW1pdFByb3Zpc2lvbmFsVGFyZ2V0Jykge1xuICAgICAgY29uc3QgYXBwID0gcGxpc3QuX19hcmd1bWVudC5XSVJBcHBsaWNhdGlvbklkZW50aWZpZXJLZXk7XG4gICAgICBjb25zdCBvbGRUYXJnZXRJZCA9IGRhdGFLZXkucGFyYW1zLm9sZFRhcmdldElkO1xuICAgICAgY29uc3QgbmV3VGFyZ2V0SWQgPSBkYXRhS2V5LnBhcmFtcy5uZXdUYXJnZXRJZDtcbiAgICAgIHRoaXMuZW1pdCgnVGFyZ2V0LmRpZENvbW1pdFByb3Zpc2lvbmFsVGFyZ2V0JywgbnVsbCwgYXBwLCBvbGRUYXJnZXRJZCwgbmV3VGFyZ2V0SWQpO1xuICAgICAgcmV0dXJuO1xuICAgIH0gZWxzZSBpZiAobWV0aG9kID09PSAnVGFyZ2V0LnRhcmdldERlc3Ryb3llZCcpIHtcbiAgICAgIGNvbnN0IGFwcCA9IHBsaXN0Ll9fYXJndW1lbnQuV0lSQXBwbGljYXRpb25JZGVudGlmaWVyS2V5O1xuICAgICAgY29uc3QgdGFyZ2V0SW5mbyA9IGRhdGFLZXkucGFyYW1zLnRhcmdldEluZm8gfHwge3RhcmdldElkOiBkYXRhS2V5LnBhcmFtcy50YXJnZXRJZH07XG4gICAgICB0aGlzLmVtaXQoJ1RhcmdldC50YXJnZXREZXN0cm95ZWQnLCBudWxsLCBhcHAsIHRhcmdldEluZm8pO1xuICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIGlmICghZGF0YUtleS5lcnJvciAmJiB0aGlzLmlzVGFyZ2V0QmFzZWQpIHtcbiAgICAgIGlmIChkYXRhS2V5Lm1ldGhvZCAhPT0gJ1RhcmdldC5kaXNwYXRjaE1lc3NhZ2VGcm9tVGFyZ2V0Jykge1xuICAgICAgICAvLyB0aGlzIHNvcnQgb2YgbWVzc2FnZSwgYXQgdGhpcyBwb2ludCwgaXMganVzdCBhbiBhY2tub3dsZWRnZW1lbnRcbiAgICAgICAgLy8gdGhhdCB0aGUgb3JpZ2luYWwgbWVzc2FnZSB3YXMgcmVjZWl2ZWRcbiAgICAgICAgcmV0dXJuO1xuICAgICAgfVxuXG4gICAgICAvLyBhdCB0aGlzIHBvaW50LCB3ZSBoYXZlIGEgVGFyZ2V0LWJhc2VkIG1lc3NhZ2Ugd3JhcHBpbmcgYSBwcm90b2NvbCBtZXNzYWdlXG4gICAgICBsZXQgbWVzc2FnZTtcbiAgICAgIHRyeSB7XG4gICAgICAgIG1lc3NhZ2UgPSBKU09OLnBhcnNlKGRhdGFLZXkucGFyYW1zLm1lc3NhZ2UpO1xuICAgICAgICBtc2dJZCA9IG1lc3NhZ2UuaWQ7XG4gICAgICAgIG1ldGhvZCA9IG1lc3NhZ2UubWV0aG9kO1xuICAgICAgICByZXN1bHQgPSBtZXNzYWdlLnJlc3VsdCB8fCBtZXNzYWdlO1xuICAgICAgICBwYXJhbXMgPSByZXN1bHQucGFyYW1zO1xuICAgICAgfSBjYXRjaCAoZXJyKSB7XG4gICAgICAgIC8vIGlmIHRoaXMgaGFwcGVucyB0aGVuIHNvbWUgYXNwZWN0IG9mIHRoZSBwcm90b2NvbCBpcyBtaXNzaW5nIHRvIHVzXG4gICAgICAgIC8vIHNvIHByaW50IHRoZSBlbnRpcmUgbWVzc2FnZSB0byBnZXQgdmlzaWJpaXR5IGludG8gd2hhdCBpcyBnb2luZyBvblxuICAgICAgICBsb2cuZXJyb3IoYFVuZXhwZWN0ZWQgbWVzc2FnZSBmb3JtYXQgZnJvbSBXZWIgSW5zcGVjdG9yOmApO1xuICAgICAgICB0aGlzLndhcm4odXRpbC5qc29uU3RyaW5naWZ5KHBsaXN0KSk7XG4gICAgICAgIHRocm93IGVycjtcbiAgICAgIH1cbiAgICB9IGVsc2Uge1xuICAgICAgcGFyYW1zID0gZGF0YUtleS5wYXJhbXM7XG4gICAgfVxuXG4gICAgLy8gd2UgY2FuIGdldCBhbiBlcnJvciwgb3Igd2UgY2FuIGdldCBhIHJlc3BvbnNlIHRoYXQgaXMgYW4gZXJyb3JcbiAgICBsZXQgZXJyb3IgPSBkYXRhS2V5LmVycm9yIHx8IG51bGw7XG4gICAgaWYgKHJlc3VsdD8ud2FzVGhyb3duKSB7XG4gICAgICBjb25zdCBtZXNzYWdlID0gKHJlc3VsdD8ucmVzdWx0Py52YWx1ZSB8fCByZXN1bHQ/LnJlc3VsdD8uZGVzY3JpcHRpb24pXG4gICAgICAgID8gKHJlc3VsdD8ucmVzdWx0Py52YWx1ZSB8fCByZXN1bHQ/LnJlc3VsdD8uZGVzY3JpcHRpb24pXG4gICAgICAgIDogJ0Vycm9yIG9jY3VycmVkIGluIGhhbmRsaW5nIGRhdGEgbWVzc2FnZSc7XG4gICAgICBlcnJvciA9IG5ldyBFcnJvcihtZXNzYWdlKTtcbiAgICB9XG5cbiAgICBhd2FpdCB0aGlzLmRpc3BhdGNoRGF0YU1lc3NhZ2UobXNnSWQsIG1ldGhvZCwgcGFyYW1zLCByZXN1bHQsIGVycm9yKTtcbiAgfVxufVxuIl0sIm1hcHBpbmdzIjoi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
|
|
229
|
+
exports.default = RpcMessageHandler;
|
|
230
|
+
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJScGNNZXNzYWdlSGFuZGxlciIsIkV2ZW50RW1pdHRlcnMiLCJjb25zdHJ1Y3RvciIsImlzVGFyZ2V0QmFzZWQiLCJfaXNUYXJnZXRCYXNlZCIsImhhbmRsZU1lc3NhZ2UiLCJwbGlzdCIsInNlbGVjdG9yIiwiX19zZWxlY3RvciIsImxvZyIsImRlYnVnIiwiYXJndW1lbnQiLCJfX2FyZ3VtZW50IiwiZW1pdCIsIldJUlNpbXVsYXRvck5hbWVLZXkiLCJXSVJTaW11bGF0b3JCdWlsZEtleSIsIldJUlNpbXVsYXRvclByb2R1Y3RWZXJzaW9uS2V5IiwiV0lSQXBwbGljYXRpb25EaWN0aW9uYXJ5S2V5IiwiV0lSQXBwbGljYXRpb25JZGVudGlmaWVyS2V5IiwiV0lSTGlzdGluZ0tleSIsImhhbmRsZURhdGFNZXNzYWdlIiwicGFyc2VEYXRhS2V5IiwiSlNPTiIsInBhcnNlIiwiV0lSTWVzc2FnZURhdGFLZXkiLCJ0b1N0cmluZyIsImVyciIsImVycm9yIiwiXyIsInRydW5jYXRlIiwic3RyaW5naWZ5IiwibGVuZ3RoIiwiRXJyb3IiLCJtZXNzYWdlIiwiZGlzcGF0Y2hEYXRhTWVzc2FnZSIsIm1zZ0lkIiwibWV0aG9kIiwicGFyYW1zIiwicmVzdWx0IiwiaXNFbXB0eSIsImxpc3RlbmVyQ291bnQiLCJoYXMiLCJ2YWx1ZSIsImV2ZW50TmFtZXMiLCJhcmdzIiwicHVzaCIsInJlY29yZCIsImNvbnRleHQiLCJzdGFydHNXaXRoIiwibmFtZSIsImRhdGFLZXkiLCJpZCIsImFwcCIsInRhcmdldEluZm8iLCJvbGRUYXJnZXRJZCIsIm5ld1RhcmdldElkIiwidGFyZ2V0SWQiLCJ3YXJuIiwidXRpbCIsImpzb25TdHJpbmdpZnkiLCJ3YXNUaHJvd24iLCJkZXNjcmlwdGlvbiJdLCJzb3VyY2VzIjpbIi4uLy4uLy4uL2xpYi9ycGMvcnBjLW1lc3NhZ2UtaGFuZGxlci5qcyJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgbG9nIGZyb20gJy4uL2xvZ2dlcic7XG5pbXBvcnQgXyBmcm9tICdsb2Rhc2gnO1xuaW1wb3J0IHsgdXRpbCB9IGZyb20gJ2FwcGl1bS9zdXBwb3J0JztcbmltcG9ydCBFdmVudEVtaXR0ZXJzIGZyb20gJ2V2ZW50cyc7XG5cblxuZXhwb3J0IGRlZmF1bHQgY2xhc3MgUnBjTWVzc2FnZUhhbmRsZXIgZXh0ZW5kcyBFdmVudEVtaXR0ZXJzIHtcbiAgY29uc3RydWN0b3IgKGlzVGFyZ2V0QmFzZWQgPSBmYWxzZSkge1xuICAgIHN1cGVyKCk7XG5cbiAgICB0aGlzLmlzVGFyZ2V0QmFzZWQgPSBpc1RhcmdldEJhc2VkO1xuICB9XG5cbiAgZ2V0IGlzVGFyZ2V0QmFzZWQgKCkge1xuICAgIHJldHVybiB0aGlzLl9pc1RhcmdldEJhc2VkO1xuICB9XG5cbiAgc2V0IGlzVGFyZ2V0QmFzZWQgKGlzVGFyZ2V0QmFzZWQpIHtcbiAgICB0aGlzLl9pc1RhcmdldEJhc2VkID0gISFpc1RhcmdldEJhc2VkO1xuICB9XG5cbiAgYXN5bmMgaGFuZGxlTWVzc2FnZSAocGxpc3QpIHtcbiAgICBjb25zdCBzZWxlY3RvciA9IHBsaXN0Ll9fc2VsZWN0b3I7XG4gICAgaWYgKCFzZWxlY3Rvcikge1xuICAgICAgbG9nLmRlYnVnKCdHb3QgYW4gaW52YWxpZCBwbGlzdCcpO1xuICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIGNvbnN0IGFyZ3VtZW50ID0gcGxpc3QuX19hcmd1bWVudDtcbiAgICBzd2l0Y2ggKHNlbGVjdG9yKSB7XG4gICAgICBjYXNlICdfcnBjX3JlcG9ydFNldHVwOic6XG4gICAgICAgIHRoaXMuZW1pdCgnX3JwY19yZXBvcnRTZXR1cDonLFxuICAgICAgICAgIG51bGwsXG4gICAgICAgICAgYXJndW1lbnQuV0lSU2ltdWxhdG9yTmFtZUtleSxcbiAgICAgICAgICBhcmd1bWVudC5XSVJTaW11bGF0b3JCdWlsZEtleSxcbiAgICAgICAgICBhcmd1bWVudC5XSVJTaW11bGF0b3JQcm9kdWN0VmVyc2lvbktleVxuICAgICAgICApO1xuICAgICAgICBicmVhaztcbiAgICAgIGNhc2UgJ19ycGNfcmVwb3J0Q29ubmVjdGVkQXBwbGljYXRpb25MaXN0Oic6XG4gICAgICAgIHRoaXMuZW1pdCgnX3JwY19yZXBvcnRDb25uZWN0ZWRBcHBsaWNhdGlvbkxpc3Q6JyxcbiAgICAgICAgICBudWxsLFxuICAgICAgICAgIGFyZ3VtZW50LldJUkFwcGxpY2F0aW9uRGljdGlvbmFyeUtleVxuICAgICAgICApO1xuICAgICAgICBicmVhaztcbiAgICAgIGNhc2UgJ19ycGNfYXBwbGljYXRpb25TZW50TGlzdGluZzonOlxuICAgICAgICB0aGlzLmVtaXQoJ19ycGNfZm9yd2FyZEdldExpc3Rpbmc6JyxcbiAgICAgICAgICBudWxsLFxuICAgICAgICAgIGFyZ3VtZW50LldJUkFwcGxpY2F0aW9uSWRlbnRpZmllcktleSxcbiAgICAgICAgICBhcmd1bWVudC5XSVJMaXN0aW5nS2V5XG4gICAgICAgICk7XG4gICAgICAgIGJyZWFrO1xuICAgICAgY2FzZSAnX3JwY19hcHBsaWNhdGlvbkNvbm5lY3RlZDonOlxuICAgICAgICB0aGlzLmVtaXQoJ19ycGNfYXBwbGljYXRpb25Db25uZWN0ZWQ6JywgbnVsbCwgYXJndW1lbnQpO1xuICAgICAgICBicmVhaztcbiAgICAgIGNhc2UgJ19ycGNfYXBwbGljYXRpb25EaXNjb25uZWN0ZWQ6JzpcbiAgICAgICAgdGhpcy5lbWl0KCdfcnBjX2FwcGxpY2F0aW9uRGlzY29ubmVjdGVkOicsIG51bGwsIGFyZ3VtZW50KTtcbiAgICAgICAgYnJlYWs7XG4gICAgICBjYXNlICdfcnBjX2FwcGxpY2F0aW9uVXBkYXRlZDonOlxuICAgICAgICB0aGlzLmVtaXQoJ19ycGNfYXBwbGljYXRpb25VcGRhdGVkOicsIG51bGwsIGFyZ3VtZW50KTtcbiAgICAgICAgYnJlYWs7XG4gICAgICBjYXNlICdfcnBjX3JlcG9ydENvbm5lY3RlZERyaXZlckxpc3Q6JzpcbiAgICAgICAgdGhpcy5lbWl0KCdfcnBjX3JlcG9ydENvbm5lY3RlZERyaXZlckxpc3Q6JywgbnVsbCwgYXJndW1lbnQpO1xuICAgICAgICBicmVhaztcbiAgICAgIGNhc2UgJ19ycGNfcmVwb3J0Q3VycmVudFN0YXRlOic6XG4gICAgICAgIHRoaXMuZW1pdCgnX3JwY19yZXBvcnRDdXJyZW50U3RhdGU6JywgbnVsbCwgYXJndW1lbnQpO1xuICAgICAgICBicmVhaztcbiAgICAgIGNhc2UgJ19ycGNfYXBwbGljYXRpb25TZW50RGF0YTonOlxuICAgICAgICBhd2FpdCB0aGlzLmhhbmRsZURhdGFNZXNzYWdlKHBsaXN0KTtcbiAgICAgICAgYnJlYWs7XG4gICAgICBkZWZhdWx0OlxuICAgICAgICBsb2cuZGVidWcoYERlYnVnZ2VyIGdvdCBhIG1lc3NhZ2UgZm9yICcke3NlbGVjdG9yfScgYW5kIGhhdmUgbm8gYCArXG4gICAgICAgICAgYGhhbmRsZXIsIGRvaW5nIG5vdGhpbmcuYCk7XG4gICAgfVxuICB9XG5cbiAgcGFyc2VEYXRhS2V5IChwbGlzdCkge1xuICAgIHRyeSB7XG4gICAgICByZXR1cm4gSlNPTi5wYXJzZShwbGlzdC5fX2FyZ3VtZW50LldJUk1lc3NhZ2VEYXRhS2V5LnRvU3RyaW5nKCd1dGY4JykpO1xuICAgIH0gY2F0Y2ggKGVycikge1xuICAgICAgbG9nLmVycm9yKGBVbnBhcnNlYWJsZSBtZXNzYWdlIGRhdGE6ICR7Xy50cnVuY2F0ZShKU09OLnN0cmluZ2lmeShwbGlzdCksIHtsZW5ndGg6IDEwMH0pfWApO1xuICAgICAgdGhyb3cgbmV3IEVycm9yKGBVbmFibGUgdG8gcGFyc2UgbWVzc2FnZSBkYXRhOiAke2Vyci5tZXNzYWdlfWApO1xuICAgIH1cbiAgfVxuXG4gIGFzeW5jIGRpc3BhdGNoRGF0YU1lc3NhZ2UgKG1zZ0lkLCBtZXRob2QsIHBhcmFtcywgcmVzdWx0LCBlcnJvcikgeyAvLyBlc2xpbnQtZGlzYWJsZS1saW5lIHJlcXVpcmUtYXdhaXRcbiAgICBpZiAoIV8uaXNFbXB0eShtc2dJZCkpIHtcbiAgICAgIGxvZy5kZWJ1ZyhgSGFuZGxpbmcgbWVzc2FnZSAoaWQ6ICcke21zZ0lkfScpYCk7XG4gICAgfVxuXG4gICAgaWYgKG1zZ0lkKSB7XG4gICAgICBpZiAodGhpcy5saXN0ZW5lckNvdW50KG1zZ0lkKSkge1xuICAgICAgICBpZiAoXy5oYXMocmVzdWx0Py5yZXN1bHQsICd2YWx1ZScpKSB7XG4gICAgICAgICAgcmVzdWx0ID0gcmVzdWx0LnJlc3VsdC52YWx1ZTtcbiAgICAgICAgfVxuICAgICAgICB0aGlzLmVtaXQobXNnSWQsIGVycm9yLCByZXN1bHQpO1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgbG9nLmVycm9yKGBXZWIgSW5zcGVjdG9yIHJldHVybmVkIGRhdGEgZm9yIG1lc3NhZ2UgJyR7bXNnSWR9JyBgICtcbiAgICAgICAgICBgYnV0IHdlIHdlcmUgbm90IHdhaXRpbmcgZm9yIHRoYXQgbWVzc2FnZSEgYCArXG4gICAgICAgICAgYHJlc3VsdDogJyR7SlNPTi5zdHJpbmdpZnkocmVzdWx0KX0nOyBgICtcbiAgICAgICAgICBgZXJyb3I6ICcke0pTT04uc3RyaW5naWZ5KGVycm9yKX0nYCk7XG4gICAgICB9XG4gICAgICByZXR1cm47XG4gICAgfVxuXG4gICAgbGV0IGV2ZW50TmFtZXMgPSBbbWV0aG9kXTtcbiAgICBsZXQgYXJncyA9IFtwYXJhbXNdO1xuXG4gICAgLy8gc29tZSBldmVudHMgaGF2ZSBkaWZmZXJlbnQgbmFtZXMsIG9yIHRoZSBhcmd1bWVudHMgYXJlIG1hcHBlZCBmcm9tIHRoZVxuICAgIC8vIHBhcmFtZXRlcnMgcmVjZWl2ZWRcbiAgICBzd2l0Y2ggKG1ldGhvZCkge1xuICAgICAgY2FzZSAnUGFnZS5mcmFtZVN0b3BwZWRMb2FkaW5nJzpcbiAgICAgICAgZXZlbnROYW1lcy5wdXNoKCdQYWdlLmZyYW1lTmF2aWdhdGVkJyk7XG4gICAgICAgIC8vIGVzbGludC1kaXNhYmxlLWxpbmUgbm8tZmFsbHRocm91Z2hcbiAgICAgIGNhc2UgJ1BhZ2UuZnJhbWVOYXZpZ2F0ZWQnOlxuICAgICAgICBhcmdzID0gW2AnJHttZXRob2R9JyBldmVudGBdO1xuICAgICAgICBicmVhaztcbiAgICAgIGNhc2UgJ1RpbWVsaW5lLmV2ZW50UmVjb3JkZWQnOlxuICAgICAgICBhcmdzID0gW3BhcmFtcyB8fCBwYXJhbXMucmVjb3JkXTtcbiAgICAgICAgYnJlYWs7XG4gICAgICBjYXNlICdDb25zb2xlLm1lc3NhZ2VBZGRlZCc6XG4gICAgICAgIGFyZ3MgPSBbcGFyYW1zLm1lc3NhZ2VdO1xuICAgICAgICBicmVhaztcbiAgICAgIGNhc2UgJ1J1bnRpbWUuZXhlY3V0aW9uQ29udGV4dENyZWF0ZWQnOlxuICAgICAgICBhcmdzID0gW3BhcmFtcy5jb250ZXh0XTtcbiAgICAgICAgYnJlYWs7XG4gICAgICBkZWZhdWx0OlxuICAgICAgICAvLyBwYXNzXG4gICAgICAgIGJyZWFrO1xuICAgIH1cblxuICAgIGlmIChfLnN0YXJ0c1dpdGgobWV0aG9kLCAnTmV0d29yay4nKSkge1xuICAgICAgLy8gYWdncmVnYXRlIE5ldHdvcmsgZXZlbnRzLCBhbmQgYWRkIG9yaWdpbmFsIG1ldGhvZCBuYW1lIHRvIHRoZSBhcmd1bWVudHNcbiAgICAgIGV2ZW50TmFtZXMucHVzaCgnTmV0d29ya0V2ZW50Jyk7XG4gICAgICBhcmdzLnB1c2gobWV0aG9kKTtcbiAgICB9XG4gICAgaWYgKF8uc3RhcnRzV2l0aChtZXRob2QsICdDb25zb2xlLicpKSB7XG4gICAgICAvLyBhZ2dyZWdhdGUgTmV0d29yayBldmVudHMsIGFuZCBhZGQgb3JpZ2luYWwgbWV0aG9kIG5hbWUgdG8gdGhlIGFyZ3VtZW50c1xuICAgICAgZXZlbnROYW1lcy5wdXNoKCdDb25zb2xlRXZlbnQnKTtcbiAgICAgIGFyZ3MucHVzaChtZXRob2QpO1xuICAgIH1cblxuICAgIGZvciAoY29uc3QgbmFtZSBvZiBldmVudE5hbWVzKSB7XG4gICAgICB0aGlzLmVtaXQobmFtZSwgZXJyb3IsIC4uLmFyZ3MpO1xuICAgIH1cbiAgfVxuXG4gIGFzeW5jIGhhbmRsZURhdGFNZXNzYWdlIChwbGlzdCkge1xuICAgIGNvbnN0IGRhdGFLZXkgPSB0aGlzLnBhcnNlRGF0YUtleShwbGlzdCk7XG4gICAgbGV0IG1zZ0lkID0gKGRhdGFLZXkuaWQgfHwgJycpLnRvU3RyaW5nKCk7XG4gICAgbGV0IHJlc3VsdCA9IGRhdGFLZXkucmVzdWx0O1xuXG4gICAgbGV0IG1ldGhvZCA9IGRhdGFLZXkubWV0aG9kO1xuICAgIGxldCBwYXJhbXM7XG5cbiAgICBpZiAobWV0aG9kID09PSAnVGFyZ2V0LnRhcmdldENyZWF0ZWQnKSB7XG4gICAgICAvLyB0aGlzIGlzIGluIHJlc3BvbnNlIHRvIGEgYF9ycGNfZm9yd2FyZFNvY2tldFNldHVwOmAgY2FsbFxuICAgICAgLy8gdGFyZ2V0SW5mbzogeyB0YXJnZXRJZDogJ3BhZ2UtMScsIHR5cGU6ICdwYWdlJyB9XG4gICAgICBjb25zdCBhcHAgPSBwbGlzdC5fX2FyZ3VtZW50LldJUkFwcGxpY2F0aW9uSWRlbnRpZmllcktleTtcbiAgICAgIGNvbnN0IHRhcmdldEluZm8gPSBkYXRhS2V5LnBhcmFtcy50YXJnZXRJbmZvO1xuICAgICAgdGhpcy5lbWl0KCdUYXJnZXQudGFyZ2V0Q3JlYXRlZCcsIG51bGwsIGFwcCwgdGFyZ2V0SW5mbyk7XG4gICAgICByZXR1cm47XG4gICAgfSBlbHNlIGlmIChtZXRob2QgPT09ICdUYXJnZXQuZGlkQ29tbWl0UHJvdmlzaW9uYWxUYXJnZXQnKSB7XG4gICAgICBjb25zdCBhcHAgPSBwbGlzdC5fX2FyZ3VtZW50LldJUkFwcGxpY2F0aW9uSWRlbnRpZmllcktleTtcbiAgICAgIGNvbnN0IG9sZFRhcmdldElkID0gZGF0YUtleS5wYXJhbXMub2xkVGFyZ2V0SWQ7XG4gICAgICBjb25zdCBuZXdUYXJnZXRJZCA9IGRhdGFLZXkucGFyYW1zLm5ld1RhcmdldElkO1xuICAgICAgdGhpcy5lbWl0KCdUYXJnZXQuZGlkQ29tbWl0UHJvdmlzaW9uYWxUYXJnZXQnLCBudWxsLCBhcHAsIG9sZFRhcmdldElkLCBuZXdUYXJnZXRJZCk7XG4gICAgICByZXR1cm47XG4gICAgfSBlbHNlIGlmIChtZXRob2QgPT09ICdUYXJnZXQudGFyZ2V0RGVzdHJveWVkJykge1xuICAgICAgY29uc3QgYXBwID0gcGxpc3QuX19hcmd1bWVudC5XSVJBcHBsaWNhdGlvbklkZW50aWZpZXJLZXk7XG4gICAgICBjb25zdCB0YXJnZXRJbmZvID0gZGF0YUtleS5wYXJhbXMudGFyZ2V0SW5mbyB8fCB7dGFyZ2V0SWQ6IGRhdGFLZXkucGFyYW1zLnRhcmdldElkfTtcbiAgICAgIHRoaXMuZW1pdCgnVGFyZ2V0LnRhcmdldERlc3Ryb3llZCcsIG51bGwsIGFwcCwgdGFyZ2V0SW5mbyk7XG4gICAgICByZXR1cm47XG4gICAgfVxuXG4gICAgaWYgKCFkYXRhS2V5LmVycm9yICYmIHRoaXMuaXNUYXJnZXRCYXNlZCkge1xuICAgICAgaWYgKGRhdGFLZXkubWV0aG9kICE9PSAnVGFyZ2V0LmRpc3BhdGNoTWVzc2FnZUZyb21UYXJnZXQnKSB7XG4gICAgICAgIC8vIHRoaXMgc29ydCBvZiBtZXNzYWdlLCBhdCB0aGlzIHBvaW50LCBpcyBqdXN0IGFuIGFja25vd2xlZGdlbWVudFxuICAgICAgICAvLyB0aGF0IHRoZSBvcmlnaW5hbCBtZXNzYWdlIHdhcyByZWNlaXZlZFxuICAgICAgICByZXR1cm47XG4gICAgICB9XG5cbiAgICAgIC8vIGF0IHRoaXMgcG9pbnQsIHdlIGhhdmUgYSBUYXJnZXQtYmFzZWQgbWVzc2FnZSB3cmFwcGluZyBhIHByb3RvY29sIG1lc3NhZ2VcbiAgICAgIGxldCBtZXNzYWdlO1xuICAgICAgdHJ5IHtcbiAgICAgICAgbWVzc2FnZSA9IEpTT04ucGFyc2UoZGF0YUtleS5wYXJhbXMubWVzc2FnZSk7XG4gICAgICAgIG1zZ0lkID0gbWVzc2FnZS5pZDtcbiAgICAgICAgbWV0aG9kID0gbWVzc2FnZS5tZXRob2Q7XG4gICAgICAgIHJlc3VsdCA9IG1lc3NhZ2UucmVzdWx0IHx8IG1lc3NhZ2U7XG4gICAgICAgIHBhcmFtcyA9IHJlc3VsdC5wYXJhbXM7XG4gICAgICB9IGNhdGNoIChlcnIpIHtcbiAgICAgICAgLy8gaWYgdGhpcyBoYXBwZW5zIHRoZW4gc29tZSBhc3BlY3Qgb2YgdGhlIHByb3RvY29sIGlzIG1pc3NpbmcgdG8gdXNcbiAgICAgICAgLy8gc28gcHJpbnQgdGhlIGVudGlyZSBtZXNzYWdlIHRvIGdldCB2aXNpYmlpdHkgaW50byB3aGF0IGlzIGdvaW5nIG9uXG4gICAgICAgIGxvZy5lcnJvcihgVW5leHBlY3RlZCBtZXNzYWdlIGZvcm1hdCBmcm9tIFdlYiBJbnNwZWN0b3I6YCk7XG4gICAgICAgIHRoaXMud2Fybih1dGlsLmpzb25TdHJpbmdpZnkocGxpc3QpKTtcbiAgICAgICAgdGhyb3cgZXJyO1xuICAgICAgfVxuICAgIH0gZWxzZSB7XG4gICAgICBwYXJhbXMgPSBkYXRhS2V5LnBhcmFtcztcbiAgICB9XG5cbiAgICAvLyB3ZSBjYW4gZ2V0IGFuIGVycm9yLCBvciB3ZSBjYW4gZ2V0IGEgcmVzcG9uc2UgdGhhdCBpcyBhbiBlcnJvclxuICAgIGxldCBlcnJvciA9IGRhdGFLZXkuZXJyb3IgfHwgbnVsbDtcbiAgICBpZiAocmVzdWx0Py53YXNUaHJvd24pIHtcbiAgICAgIGNvbnN0IG1lc3NhZ2UgPSAocmVzdWx0Py5yZXN1bHQ/LnZhbHVlIHx8IHJlc3VsdD8ucmVzdWx0Py5kZXNjcmlwdGlvbilcbiAgICAgICAgPyAocmVzdWx0Py5yZXN1bHQ/LnZhbHVlIHx8IHJlc3VsdD8ucmVzdWx0Py5kZXNjcmlwdGlvbilcbiAgICAgICAgOiAnRXJyb3Igb2NjdXJyZWQgaW4gaGFuZGxpbmcgZGF0YSBtZXNzYWdlJztcbiAgICAgIGVycm9yID0gbmV3IEVycm9yKG1lc3NhZ2UpO1xuICAgIH1cblxuICAgIGF3YWl0IHRoaXMuZGlzcGF0Y2hEYXRhTWVzc2FnZShtc2dJZCwgbWV0aG9kLCBwYXJhbXMsIHJlc3VsdCwgZXJyb3IpO1xuICB9XG59XG4iXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7O0FBQUE7O0FBQ0E7O0FBQ0E7O0FBQ0E7O0FBR2UsTUFBTUEsaUJBQU4sU0FB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
|
package/build/lib/utils.js
CHANGED
|
@@ -223,7 +223,5 @@ function convertResult(res) {
|
|
|
223
223
|
}
|
|
224
224
|
|
|
225
225
|
return value;
|
|
226
|
-
}
|
|
227
|
-
|
|
228
|
-
|
|
229
|
-
//# sourceMappingURL=data:application/json;charset=utf8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibGliL3V0aWxzLmpzIiwibmFtZXMiOlsiV0VCX0NPTlRFTlRfQlVORExFX0lEIiwiV0VCX0NPTlRFTlRfUFJPQ0VTU19CVU5ETEVfSUQiLCJTQUZBUklfVklFV19QUk9DRVNTX0JVTkRMRV9JRCIsIlNBRkFSSV9WSUVXX0JVTkRMRV9JRCIsIldJTERDQVJEX0JVTkRMRV9JRCIsIklOQUNUSVZFX0FQUF9DT0RFIiwiQUNDRVBURURfUEFHRV9UWVBFUyIsIlJFU1BPTlNFX0xPR19MRU5HVEgiLCJhcHBJbmZvRnJvbURpY3QiLCJkaWN0IiwiaWQiLCJXSVJBcHBsaWNhdGlvbklkZW50aWZpZXJLZXkiLCJpc1Byb3h5IiwiXyIsImlzU3RyaW5nIiwiV0lSSXNBcHBsaWNhdGlvblByb3h5S2V5IiwidG9Mb3dlckNhc2UiLCJpc0F1dG9tYXRpb25FbmFibGVkIiwiV0lSUmVtb3RlQXV0b21hdGlvbkVuYWJsZWRLZXkiLCJoYXMiLCJXSVJBdXRvbWF0aW9uQXZhaWxhYmlsaXR5S2V5IiwiZW50cnkiLCJuYW1lIiwiV0lSQXBwbGljYXRpb25OYW1lS2V5IiwiYnVuZGxlSWQiLCJXSVJBcHBsaWNhdGlvbkJ1bmRsZUlkZW50aWZpZXJLZXkiLCJob3N0SWQiLCJXSVJIb3N0QXBwbGljYXRpb25JZGVudGlmaWVyS2V5IiwiaXNBY3RpdmUiLCJXSVJJc0FwcGxpY2F0aW9uQWN0aXZlS2V5IiwicGFnZUFycmF5RnJvbURpY3QiLCJwYWdlRGljdCIsIm5ld1BhZ2VBcnJheSIsInZhbHVlcyIsImlzVW5kZWZpbmVkIiwiV0lSVHlwZUtleSIsImluY2x1ZGVzIiwicHVzaCIsIldJUlBhZ2VJZGVudGlmaWVyS2V5IiwidGl0bGUiLCJXSVJUaXRsZUtleSIsInVybCIsIldJUlVSTEtleSIsImlzS2V5IiwiV0lSQ29ubmVjdGlvbklkZW50aWZpZXJLZXkiLCJnZXREZWJ1Z2dlckFwcEtleSIsImFwcERpY3QiLCJhcHBJZCIsImtleSIsImRhdGEiLCJ0b1BhaXJzIiwibG9nIiwiZGVidWciLCJwcm94eUFwcElkIiwiYXBwSWRGb3JCdW5kbGUiLCJlbmRzV2l0aCIsImdldFBvc3NpYmxlRGVidWdnZXJBcHBLZXlzIiwiYnVuZGxlSWRzIiwicHJveGllZEFwcElkcyIsInBvc3NpYmxlQnVuZGxlSWRzIiwidW5pcSIsImpvaW4iLCJjaGVja1BhcmFtcyIsInBhcmFtcyIsImVycm9ycyIsImZpbHRlciIsInZhbHVlIiwiaXNOaWwiLCJtYXAiLCJwYXJhbSIsImxlbmd0aCIsIkVycm9yIiwidXRpbCIsInBsdXJhbGl6ZSIsInNpbXBsZVN0cmluZ2lmeSIsIm11bHRpbGluZSIsIkpTT04iLCJzdHJpbmdpZnkiLCJjbGVhblZhbHVlIiwiY2xvbmUiLCJwcm9wZXJ0eSIsImRlZmVycmVkUHJvbWlzZSIsInJlc29sdmUiLCJyZWplY3QiLCJwcm9taXNlIiwiQiIsInJlcyIsInJlaiIsImNvbnZlcnRSZXN1bHQiLCJ0cnVuY2F0ZSIsInBhcnNlIiwiZXJyIiwiaXNPYmplY3QiLCJzdGF0dXMiLCJlcnJvckZyb21NSlNPTldQU3RhdHVzQ29kZSIsIm1lc3NhZ2UiXSwic291cmNlUm9vdCI6Ii4uLy4uIiwic291cmNlcyI6WyJsaWIvdXRpbHMuanMiXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IGxvZyBmcm9tICcuL2xvZ2dlcic7XG5pbXBvcnQgXyBmcm9tICdsb2Rhc2gnO1xuaW1wb3J0IEIgZnJvbSAnYmx1ZWJpcmQnO1xuaW1wb3J0IHsgZXJyb3JGcm9tTUpTT05XUFN0YXR1c0NvZGUgfSBmcm9tICdhcHBpdW0vZHJpdmVyJztcbmltcG9ydCB7IHV0aWwgfSBmcm9tICdhcHBpdW0vc3VwcG9ydCc7XG5cblxuY29uc3QgV0VCX0NPTlRFTlRfQlVORExFX0lEID0gJ2NvbS5hcHBsZS5XZWJLaXQuV2ViQ29udGVudCc7XG5jb25zdCBXRUJfQ09OVEVOVF9QUk9DRVNTX0JVTkRMRV9JRCA9ICdwcm9jZXNzLWNvbS5hcHBsZS5XZWJLaXQuV2ViQ29udGVudCc7XG5jb25zdCBTQUZBUklfVklFV19QUk9DRVNTX0JVTkRMRV9JRCA9ICdwcm9jZXNzLVNhZmFyaVZpZXdTZXJ2aWNlJztcbmNvbnN0IFNBRkFSSV9WSUVXX0JVTkRMRV9JRCA9ICdjb20uYXBwbGUuU2FmYXJpVmlld1NlcnZpY2UnO1xuY29uc3QgV0lMRENBUkRfQlVORExFX0lEID0gJyonO1xuXG5jb25zdCBJTkFDVElWRV9BUFBfQ09ERSA9IDA7XG5cbi8vIHZhbHVlcyBmb3IgdGhlIHBhZ2UgYFdJUlR5cGVLZXlgIGVudHJ5XG5jb25zdCBBQ0NFUFRFRF9QQUdFX1RZUEVTID0gW1xuICAnV0lSVHlwZVdlYicsIC8vIHVwIHRvIGlPUyAxMS4zXG4gICdXSVJUeXBlV2ViUGFnZScsIC8vIGlPUyAxMS40XG4gICdXSVJUeXBlUGFnZScsIC8vIGlPUyAxMS40IHdlYnZpZXdcbl07XG5cbmNvbnN0IFJFU1BPTlNFX0xPR19MRU5HVEggPSAxMDA7XG5cbi8qXG4gKiBUYWtlcyBhIGRpY3Rpb25hcnkgZnJvbSB0aGUgcmVtb3RlIGRlYnVnZ2VyIGFuZCBtYWtlcyBhIG1vcmUgbWFuYWdlYWJsZVxuICogZGljdGlvbmFyeSB3aG9zZSBrZXlzIGFyZSB1bmRlcnN0YW5kYWJsZVxuICovXG5mdW5jdGlvbiBhcHBJbmZvRnJvbURpY3QgKGRpY3QpIHtcbiAgY29uc3QgaWQgPSBkaWN0LldJUkFwcGxpY2F0aW9uSWRlbnRpZmllcktleTtcbiAgY29uc3QgaXNQcm94eSA9IF8uaXNTdHJpbmcoZGljdC5XSVJJc0FwcGxpY2F0aW9uUHJveHlLZXkpXG4gICAgPyBkaWN0LldJUklzQXBwbGljYXRpb25Qcm94eUtleS50b0xvd2VyQ2FzZSgpID09PSAndHJ1ZSdcbiAgICA6IGRpY3QuV0lSSXNBcHBsaWNhdGlvblByb3h5S2V5O1xuICAvLyBhdXRvbWF0aW9uIGVuYWJsZWQgY2FuIGJlIGVpdGhlciBmcm9tIHRoZSBrZXlzXG4gIC8vICAgLSBXSVJSZW1vdGVBdXRvbWF0aW9uRW5hYmxlZEtleSAoYm9vbGVhbilcbiAgLy8gICAtIFdJUkF1dG9tYXRpb25BdmFpbGFiaWxpdHlLZXkgKHN0cmluZyBvciBib29sZWFuKVxuICBsZXQgaXNBdXRvbWF0aW9uRW5hYmxlZCA9ICEhZGljdC5XSVJSZW1vdGVBdXRvbWF0aW9uRW5hYmxlZEtleTtcbiAgaWYgKF8uaGFzKGRpY3QsICdXSVJBdXRvbWF0aW9uQXZhaWxhYmlsaXR5S2V5JykpIHtcbiAgICBpZiAoXy5pc1N0cmluZyhkaWN0LldJUkF1dG9tYXRpb25BdmFpbGFiaWxpdHlLZXkpKSB7XG4gICAgICBpc0F1dG9tYXRpb25FbmFibGVkID0gZGljdC5XSVJBdXRvbWF0aW9uQXZhaWxhYmlsaXR5S2V5ID09PSAnV0lSQXV0b21hdGlvbkF2YWlsYWJpbGl0eVVua25vd24nXG4gICAgICAgID8gJ1Vua25vd24nXG4gICAgICAgIDogZGljdC5XSVJBdXRvbWF0aW9uQXZhaWxhYmlsaXR5S2V5ID09PSAnV0lSQXV0b21hdGlvbkF2YWlsYWJpbGl0eUF2YWlsYWJsZSc7XG4gICAgfSBlbHNlIHtcbiAgICAgIGlzQXV0b21hdGlvbkVuYWJsZWQgPSAhIWRpY3QuV0lSQXV0b21hdGlvbkF2YWlsYWJpbGl0eUtleTtcbiAgICB9XG4gIH1cbiAgY29uc3QgZW50cnkgPSB7XG4gICAgaWQsXG4gICAgaXNQcm94eSxcbiAgICBuYW1lOiBkaWN0LldJUkFwcGxpY2F0aW9uTmFtZUtleSxcbiAgICBidW5kbGVJZDogZGljdC5XSVJBcHBsaWNhdGlvbkJ1bmRsZUlkZW50aWZpZXJLZXksXG4gICAgaG9zdElkOiBkaWN0LldJUkhvc3RBcHBsaWNhdGlvbklkZW50aWZpZXJLZXksXG4gICAgaXNBY3RpdmU6IGRpY3QuV0lSSXNBcHBsaWNhdGlvbkFjdGl2ZUtleSAhPT0gSU5BQ1RJVkVfQVBQX0NPREUsXG4gICAgaXNBdXRvbWF0aW9uRW5hYmxlZCxcbiAgfTtcblxuICByZXR1cm4gW2lkLCBlbnRyeV07XG59XG5cbi8qXG4gKiBUYWtlIGEgZGljdGlvbmFyeSBmcm9tIHRoZSByZW1vdGUgZGVidWdnZXIgYW5kIG1ha2VzIGEgbW9yZSBtYW5hZ2VhYmxlXG4gKiBkaWN0aW9uYXJ5IG9mIHBhZ2VzIGF2YWlsYWJsZS5cbiAqL1xuZnVuY3Rpb24gcGFnZUFycmF5RnJvbURpY3QgKHBhZ2VEaWN0KSB7XG4gIGlmIChwYWdlRGljdC5pZCkge1xuICAgIC8vIHRoZSBwYWdlIGlzIGFscmVhZHkgdHJhbnNsYXRlZCwgc28gd3JhcCBpbiBhbiBhcnJheSBhbmQgcGFzcyBiYWNrXG4gICAgcmV0dXJuIFtwYWdlRGljdF07XG4gIH1cbiAgbGV0IG5ld1BhZ2VBcnJheSA9IFtdO1xuICBmb3IgKGNvbnN0IGRpY3Qgb2YgXy52YWx1ZXMocGFnZURpY3QpKSB7XG4gICAgLy8gY291bnQgb25seSBXSVJUeXBlV2ViIHBhZ2VzIGFuZCBpZ25vcmUgYWxsIG90aGVycyAoV0lSVHlwZUphdmFTY3JpcHQgZXRjKVxuICAgIGlmIChfLmlzVW5kZWZpbmVkKGRpY3QuV0lSVHlwZUtleSkgfHwgQUNDRVBURURfUEFHRV9UWVBFUy5pbmNsdWRlcyhkaWN0LldJUlR5cGVLZXkpKSB7XG4gICAgICBuZXdQYWdlQXJyYXkucHVzaCh7XG4gICAgICAgIGlkOiBkaWN0LldJUlBhZ2VJZGVudGlmaWVyS2V5LFxuICAgICAgICB0aXRsZTogZGljdC5XSVJUaXRsZUtleSxcbiAgICAgICAgdXJsOiBkaWN0LldJUlVSTEtleSxcbiAgICAgICAgaXNLZXk6ICFfLmlzVW5kZWZpbmVkKGRpY3QuV0lSQ29ubmVjdGlvbklkZW50aWZpZXJLZXkpLFxuICAgICAgfSk7XG4gICAgfVxuICB9XG4gIHJldHVybiBuZXdQYWdlQXJyYXk7XG59XG5cbi8qXG4gKiBHaXZlbiBhIGJ1bmRsZSBpZCwgZmluZHMgdGhlIGNvcnJlY3QgcmVtb3RlIGRlYnVnZ2VyIGFwcCB0aGF0IGlzXG4gKiBjb25uZWN0ZWQuXG4gKi9cbmZ1bmN0aW9uIGdldERlYnVnZ2VyQXBwS2V5IChidW5kbGVJZCwgYXBwRGljdCkge1xuICBsZXQgYXBwSWQ7XG4gIGZvciAoY29uc3QgW2tleSwgZGF0YV0gb2YgXy50b1BhaXJzKGFwcERpY3QpKSB7XG4gICAgaWYgKGRhdGEuYnVuZGxlSWQgPT09IGJ1bmRsZUlkKSB7XG4gICAgICBhcHBJZCA9IGtleTtcbiAgICAgIGJyZWFrO1xuICAgIH1cbiAgfVxuICAvLyBub3cgd2UgbmVlZCB0byBkZXRlcm1pbmUgaWYgd2Ugc2hvdWxkIHBpY2sgYSBwcm94eSBmb3IgdGhpcyBpbnN0ZWFkXG4gIGlmIChhcHBJZCkge1xuICAgIGxvZy5kZWJ1ZyhgRm91bmQgYXBwIGlkIGtleSAnJHthcHBJZH0nIGZvciBidW5kbGUgJyR7YnVuZGxlSWR9J2ApO1xuICAgIGxldCBwcm94eUFwcElkO1xuICAgIGZvciAoY29uc3QgW2tleSwgZGF0YV0gb2YgXy50b1BhaXJzKGFwcERpY3QpKSB7XG4gICAgICBpZiAoZGF0YS5pc1Byb3h5ICYmIGRhdGEuaG9zdElkID09PSBhcHBJZCkge1xuICAgICAgICBsb2cuZGVidWcoYEZvdW5kIHNlcGFyYXRlIGJ1bmRsZUlkICcke2RhdGEuYnVuZGxlSWR9JyBgICtcbiAgICAgICAgICAgICAgICAgIGBhY3RpbmcgYXMgcHJveHkgZm9yICcke2J1bmRsZUlkfScsIHdpdGggYXBwIGlkICcke2tleX0nYCk7XG4gICAgICAgIC8vIHNldCB0aGUgYXBwIGlkLi4uIHRoZSBsYXN0IG9uZSB3aWxsIGJlIHVzZWQsIHNvIGp1c3Qga2VlcCByZS1hc3NpZ25pbmdcbiAgICAgICAgcHJveHlBcHBJZCA9IGtleTtcbiAgICAgIH1cbiAgICB9XG4gICAgaWYgKHByb3h5QXBwSWQpIHtcbiAgICAgIGFwcElkID0gcHJveHlBcHBJZDtcbiAgICAgIGxvZy5kZWJ1ZyhgVXNpbmcgcHJveGllZCBhcHAgaWQgJyR7YXBwSWR9J2ApO1xuICAgIH1cbiAgfVxuXG4gIHJldHVybiBhcHBJZDtcbn1cblxuZnVuY3Rpb24gYXBwSWRGb3JCdW5kbGUgKGJ1bmRsZUlkLCBhcHBEaWN0KSB7XG4gIGxldCBhcHBJZDtcbiAgZm9yIChjb25zdCBba2V5LCBkYXRhXSBvZiBfLnRvUGFpcnMoYXBwRGljdCkpIHtcbiAgICBpZiAoZGF0YS5idW5kbGVJZC5lbmRzV2l0aChidW5kbGVJZCkpIHtcbiAgICAgIGFwcElkID0ga2V5O1xuICAgICAgYnJlYWs7XG4gICAgfVxuICB9XG5cbiAgLy8gaWYgbm90aGluZyBpcyBmb3VuZCwgdHJ5IHRvIGdldCB0aGUgZ2VuZXJpYyBhcHBcbiAgaWYgKCFhcHBJZCAmJiBidW5kbGVJZCAhPT0gV0VCX0NPTlRFTlRfQlVORExFX0lEKSB7XG4gICAgcmV0dXJuIGFwcElkRm9yQnVuZGxlKFdFQl9DT05URU5UX0JVTkRMRV9JRCwgYXBwRGljdCk7XG4gIH1cblxuICByZXR1cm4gYXBwSWQ7XG59XG5cbmZ1bmN0aW9uIGdldFBvc3NpYmxlRGVidWdnZXJBcHBLZXlzIChidW5kbGVJZHMsIGFwcERpY3QpIHtcbiAgbGV0IHByb3hpZWRBcHBJZHMgPSBbXTtcblxuICAvLyBnbyB0aHJvdWdoIHRoZSBwb3NzaWJsZSBidW5kbGUgaWRlbnRpZmllcnNcbiAgY29uc3QgcG9zc2libGVCdW5kbGVJZHMgPSBfLnVuaXEoW1xuICAgIFdFQl9DT05URU5UX0JVTkRMRV9JRCxcbiAgICBXRUJfQ09OVEVOVF9QUk9DRVNTX0JVTkRMRV9JRCxcbiAgICBTQUZBUklfVklFV19QUk9DRVNTX0JVTkRMRV9JRCxcbiAgICBTQUZBUklfVklFV19CVU5ETEVfSUQsXG4gICAgV0lMRENBUkRfQlVORExFX0lELFxuICAgIC4uLmJ1bmRsZUlkcyxcbiAgXSk7XG4gIGxvZy5kZWJ1ZyhgQ2hlY2tpbmcgZm9yIGJ1bmRsZSBpZGVudGlmaWVyczogJHtwb3NzaWJsZUJ1bmRsZUlkcy5qb2luKCcsICcpfWApO1xuICBmb3IgKGNvbnN0IGJ1bmRsZUlkIG9mIHBvc3NpYmxlQnVuZGxlSWRzKSB7XG4gICAgY29uc3QgYXBwSWQgPSBhcHBJZEZvckJ1bmRsZShidW5kbGVJZCwgYXBwRGljdCk7XG5cbiAgICAvLyBub3cgd2UgbmVlZCB0byBkZXRlcm1pbmUgaWYgd2Ugc2hvdWxkIHBpY2sgYSBwcm94eSBmb3IgdGhpcyBpbnN0ZWFkXG4gICAgaWYgKGFwcElkKSB7XG4gICAgICBwcm94aWVkQXBwSWRzLnB1c2goYXBwSWQpO1xuICAgICAgbG9nLmRlYnVnKGBGb3VuZCBhcHAgaWQga2V5ICcke2FwcElkfScgZm9yIGJ1bmRsZSAnJHtidW5kbGVJZH0nYCk7XG4gICAgICBmb3IgKGNvbnN0IFtrZXksIGRhdGFdIG9mIF8udG9QYWlycyhhcHBEaWN0KSkge1xuICAgICAgICBpZiAoZGF0YS5pc1Byb3h5ICYmIGRhdGEuaG9zdElkID09PSBhcHBJZCkge1xuICAgICAgICAgIGxvZy5kZWJ1ZyhgRm91bmQgc2VwYXJhdGUgYnVuZGxlSWQgJyR7ZGF0YS5idW5kbGVJZH0nIGAgK1xuICAgICAgICAgICAgICAgICAgICBgYWN0aW5nIGFzIHByb3h5IGZvciAnJHtidW5kbGVJZH0nLCB3aXRoIGFwcCBpZCAnJHtrZXl9J2ApO1xuICAgICAgICAgIHByb3hpZWRBcHBJZHMucHVzaChrZXkpO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgcmV0dXJuIF8udW5pcShwcm94aWVkQXBwSWRzKTtcbn1cblxuZnVuY3Rpb24gY2hlY2tQYXJhbXMgKHBhcmFtcykge1xuICAvLyBjaGVjayBpZiBhbGwgcGFyYW1ldGVycyBoYXZlIGEgdmFsdWVcbiAgY29uc3QgZXJyb3JzID0gXy50b1BhaXJzKHBhcmFtcylcbiAgICAuZmlsdGVyKChbLCB2YWx1ZV0pID0+IF8uaXNOaWwodmFsdWUpKVxuICAgIC5tYXAoKFtwYXJhbV0pID0+IHBhcmFtKTtcbiAgaWYgKGVycm9ycy5sZW5ndGgpIHtcbiAgICB0aHJvdyBuZXcgRXJyb3IoYE1pc3NpbmcgJHt1dGlsLnBsdXJhbGl6ZSgncGFyYW1ldGVyJywgZXJyb3JzLmxlbmd0aCl9OiAke2Vycm9ycy5qb2luKCcsICcpfWApO1xuICB9XG59XG5cbmZ1bmN0aW9uIHNpbXBsZVN0cmluZ2lmeSAodmFsdWUsIG11bHRpbGluZSA9IGZhbHNlKSB7XG4gIGlmICghdmFsdWUpIHtcbiAgICByZXR1cm4gSlNPTi5zdHJpbmdpZnkodmFsdWUpO1xuICB9XG5cbiAgLy8gd2UgZ2V0IGJhY2sgb2JqZWN0cyBzb21ldGltZXMgd2l0aCBzdHJpbmcgdmVyc2lvbnMgb2YgZnVuY3Rpb25zXG4gIC8vIHdoaWNoIG11ZGR5IHRoZSBsb2dzXG4gIGxldCBjbGVhblZhbHVlID0gXy5jbG9uZSh2YWx1ZSk7XG4gIGZvciAoY29uc3QgcHJvcGVydHkgb2YgWydjZWlsJywgJ2Nsb25lJywgJ2Zsb29yJywgJ3JvdW5kJywgJ3NjYWxlJywgJ3RvU3RyaW5nJ10pIHtcbiAgICBkZWxldGUgY2xlYW5WYWx1ZVtwcm9wZXJ0eV07XG4gIH1cbiAgcmV0dXJuIG11bHRpbGluZSA/IEpTT04uc3RyaW5naWZ5KGNsZWFuVmFsdWUsIG51bGwsIDIpIDogSlNPTi5zdHJpbmdpZnkoY2xlYW5WYWx1ZSk7XG59XG5cbmZ1bmN0aW9uIGRlZmVycmVkUHJvbWlzZSAoKSB7XG4gIC8vIGh0dHA6Ly9ibHVlYmlyZGpzLmNvbS9kb2NzL2FwaS9kZWZlcnJlZC1taWdyYXRpb24uaHRtbFxuICBsZXQgcmVzb2x2ZTtcbiAgbGV0IHJlamVjdDtcbiAgY29uc3QgcHJvbWlzZSA9IG5ldyBCKChyZXMsIHJlaikgPT4geyAvLyBlc2xpbnQtZGlzYWJsZS1saW5lIHByb21pc2UvcGFyYW0tbmFtZXNcbiAgICByZXNvbHZlID0gcmVzO1xuICAgIHJlamVjdCA9IHJlajtcbiAgfSk7XG4gIHJldHVybiB7XG4gICAgcHJvbWlzZSxcbiAgICByZXNvbHZlLFxuICAgIHJlamVjdFxuICB9O1xufVxuXG5mdW5jdGlvbiBjb252ZXJ0UmVzdWx0IChyZXMpIHtcbiAgaWYgKF8uaXNVbmRlZmluZWQocmVzKSkge1xuICAgIHRocm93IG5ldyBFcnJvcihgRGlkIG5vdCBnZXQgT0sgcmVzdWx0IGZyb20gcmVtb3RlIGRlYnVnZ2VyLiBSZXN1bHQgd2FzOiAke18udHJ1bmNhdGUoc2ltcGxlU3RyaW5naWZ5KHJlcyksIHtsZW5ndGg6IFJFU1BPTlNFX0xPR19MRU5HVEh9KX1gKTtcbiAgfSBlbHNlIGlmIChfLmlzU3RyaW5nKHJlcykpIHtcbiAgICB0cnkge1xuICAgICAgcmVzID0gSlNPTi5wYXJzZShyZXMpO1xuICAgIH0gY2F0Y2ggKGVycikge1xuICAgICAgLy8gd2UgbWlnaHQgZ2V0IGEgc2VyaWFsaXplZCBvYmplY3QsIGJ1dCB3ZSBtaWdodCBub3RcbiAgICAgIC8vIGlmIHdlIGdldCBoZXJlLCBpdCBpcyBqdXN0IGEgdmFsdWVcbiAgICB9XG4gIH0gZWxzZSBpZiAoIV8uaXNPYmplY3QocmVzKSkge1xuICAgIHRocm93IG5ldyBFcnJvcihgUmVzdWx0IGhhcyB1bmV4cGVjdGVkIHR5cGU6ICgke3R5cGVvZiByZXN9KS5gKTtcbiAgfVxuXG4gIGlmIChyZXMuc3RhdHVzICYmIHJlcy5zdGF0dXMgIT09IDApIHtcbiAgICAvLyB3ZSBnb3Qgc29tZSBmb3JtIG9mIGVycm9yLlxuICAgIHRocm93IGVycm9yRnJvbU1KU09OV1BTdGF0dXNDb2RlKHJlcy5zdGF0dXMsIHJlcy52YWx1ZS5tZXNzYWdlIHx8IHJlcy52YWx1ZSk7XG4gIH1cblxuICAvLyB3aXRoIGVpdGhlciBoYXZlIGFuIG9iamVjdCB3aXRoIGEgYHZhbHVlYCBwcm9wZXJ0eSAoZXZlbiBpZiBgbnVsbGApLFxuICAvLyBvciBhIHBsYWluIG9iamVjdFxuICBjb25zdCB2YWx1ZSA9IF8uaGFzKHJlcywgJ3ZhbHVlJykgPyByZXMudmFsdWUgOiByZXM7XG5cbiAgLy8gZ2V0IHJpZCBvZiBub2lzeSBmdW5jdGlvbnMgb24gb2JqZWN0c1xuICBpZiAoXy5pc09iamVjdCh2YWx1ZSkpIHtcbiAgICBmb3IgKGNvbnN0IHByb3BlcnR5IG9mIFsnY2VpbCcsICdjbG9uZScsICdmbG9vcicsICdyb3VuZCcsICdzY2FsZScsICd0b1N0cmluZyddKSB7XG4gICAgICBkZWxldGUgdmFsdWVbcHJvcGVydHldO1xuICAgIH1cbiAgfVxuICByZXR1cm4gdmFsdWU7XG59XG5cbmV4cG9ydCB7XG4gIGFwcEluZm9Gcm9tRGljdCwgcGFnZUFycmF5RnJvbURpY3QsIGdldERlYnVnZ2VyQXBwS2V5LFxuICBnZXRQb3NzaWJsZURlYnVnZ2VyQXBwS2V5cywgY2hlY2tQYXJhbXMsIHNpbXBsZVN0cmluZ2lmeSwgZGVmZXJyZWRQcm9taXNlLFxuICBjb252ZXJ0UmVzdWx0LCBSRVNQT05TRV9MT0dfTEVOR1RILFxufTtcbiJdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7Ozs7Ozs7OztBQUFBOztBQUNBOztBQUNBOztBQUNBOztBQUNBOztBQUdBLE1BQU1BLHFCQUFxQixHQUFHLDZCQUE5QjtBQUNBLE1BQU1DLDZCQUE2QixHQUFHLHFDQUF0QztBQUNBLE1BQU1DLDZCQUE2QixHQUFHLDJCQUF0QztBQUNBLE1BQU1DLHFCQUFxQixHQUFHLDZCQUE5QjtBQUNBLE1BQU1DLGtCQUFrQixHQUFHLEdBQTNCO0FBRUEsTUFBTUMsaUJBQWlCLEdBQUcsQ0FBMUI7QUFHQSxNQUFNQyxtQkFBbUIsR0FBRyxDQUMxQixZQUQwQixFQUUxQixnQkFGMEIsRUFHMUIsYUFIMEIsQ0FBNUI7QUFNQSxNQUFNQyxtQkFBbUIsR0FBRyxHQUE1Qjs7O0FBTUEsU0FBU0MsZUFBVCxDQUEwQkMsSUFBMUIsRUFBZ0M7RUFDOUIsTUFBTUMsRUFBRSxHQUFHRCxJQUFJLENBQUNFLDJCQUFoQjtFQUNBLE1BQU1DLE9BQU8sR0FBR0MsZUFBQSxDQUFFQyxRQUFGLENBQVdMLElBQUksQ0FBQ00sd0JBQWhCLElBQ1pOLElBQUksQ0FBQ00sd0JBQUwsQ0FBOEJDLFdBQTlCLE9BQWdELE1BRHBDLEdBRVpQLElBQUksQ0FBQ00sd0JBRlQ7RUFNQSxJQUFJRSxtQkFBbUIsR0FBRyxDQUFDLENBQUNSLElBQUksQ0FBQ1MsNkJBQWpDOztFQUNBLElBQUlMLGVBQUEsQ0FBRU0sR0FBRixDQUFNVixJQUFOLEVBQVksOEJBQVosQ0FBSixFQUFpRDtJQUMvQyxJQUFJSSxlQUFBLENBQUVDLFFBQUYsQ0FBV0wsSUFBSSxDQUFDVyw0QkFBaEIsQ0FBSixFQUFtRDtNQUNqREgsbUJBQW1CLEdBQUdSLElBQUksQ0FBQ1csNEJBQUwsS0FBc0Msa0NBQXRDLEdBQ2xCLFNBRGtCLEdBRWxCWCxJQUFJLENBQUNXLDRCQUFMLEtBQXNDLG9DQUYxQztJQUdELENBSkQsTUFJTztNQUNMSCxtQkFBbUIsR0FBRyxDQUFDLENBQUNSLElBQUksQ0FBQ1csNEJBQTdCO0lBQ0Q7RUFDRjs7RUFDRCxNQUFNQyxLQUFLLEdBQUc7SUFDWlgsRUFEWTtJQUVaRSxPQUZZO0lBR1pVLElBQUksRUFBRWIsSUFBSSxDQUFDYyxxQkFIQztJQUlaQyxRQUFRLEVBQUVmLElBQUksQ0FBQ2dCLGlDQUpIO0lBS1pDLE1BQU0sRUFBRWpCLElBQUksQ0FBQ2tCLCtCQUxEO0lBTVpDLFFBQVEsRUFBRW5CLElBQUksQ0FBQ29CLHlCQUFMLEtBQW1DeEIsaUJBTmpDO0lBT1pZO0VBUFksQ0FBZDtFQVVBLE9BQU8sQ0FBQ1AsRUFBRCxFQUFLVyxLQUFMLENBQVA7QUFDRDs7QUFNRCxTQUFTUyxpQkFBVCxDQUE0QkMsUUFBNUIsRUFBc0M7RUFDcEMsSUFBSUEsUUFBUSxDQUFDckIsRUFBYixFQUFpQjtJQUVmLE9BQU8sQ0FBQ3FCLFFBQUQsQ0FBUDtFQUNEOztFQUNELElBQUlDLFlBQVksR0FBRyxFQUFuQjs7RUFDQSxLQUFLLE1BQU12QixJQUFYLElBQW1CSSxlQUFBLENBQUVvQixNQUFGLENBQVNGLFFBQVQsQ0FBbkIsRUFBdUM7SUFFckMsSUFBSWxCLGVBQUEsQ0FBRXFCLFdBQUYsQ0FBY3pCLElBQUksQ0FBQzBCLFVBQW5CLEtBQWtDN0IsbUJBQW1CLENBQUM4QixRQUFwQixDQUE2QjNCLElBQUksQ0FBQzBCLFVBQWxDLENBQXRDLEVBQXFGO01BQ25GSCxZQUFZLENBQUNLLElBQWIsQ0FBa0I7UUFDaEIzQixFQUFFLEVBQUVELElBQUksQ0FBQzZCLG9CQURPO1FBRWhCQyxLQUFLLEVBQUU5QixJQUFJLENBQUMrQixXQUZJO1FBR2hCQyxHQUFHLEVBQUVoQyxJQUFJLENBQUNpQyxTQUhNO1FBSWhCQyxLQUFLLEVBQUUsQ0FBQzlCLGVBQUEsQ0FBRXFCLFdBQUYsQ0FBY3pCLElBQUksQ0FBQ21DLDBCQUFuQjtNQUpRLENBQWxCO0lBTUQ7RUFDRjs7RUFDRCxPQUFPWixZQUFQO0FBQ0Q7O0FBTUQsU0FBU2EsaUJBQVQsQ0FBNEJyQixRQUE1QixFQUFzQ3NCLE9BQXRDLEVBQStDO0VBQzdDLElBQUlDLEtBQUo7O0VBQ0EsS0FBSyxNQUFNLENBQUNDLEdBQUQsRUFBTUMsSUFBTixDQUFYLElBQTBCcEMsZUFBQSxDQUFFcUMsT0FBRixDQUFVSixPQUFWLENBQTFCLEVBQThDO0lBQzVDLElBQUlHLElBQUksQ0FBQ3pCLFFBQUwsS0FBa0JBLFFBQXRCLEVBQWdDO01BQzlCdUIsS0FBSyxHQUFHQyxHQUFSO01BQ0E7SUFDRDtFQUNGOztFQUVELElBQUlELEtBQUosRUFBVztJQUNUSSxlQUFBLENBQUlDLEtBQUosQ0FBVyxxQkFBb0JMLEtBQU0saUJBQWdCdkIsUUFBUyxHQUE5RDs7SUFDQSxJQUFJNkIsVUFBSjs7SUFDQSxLQUFLLE1BQU0sQ0FBQ0wsR0FBRCxFQUFNQyxJQUFOLENBQVgsSUFBMEJwQyxlQUFBLENBQUVxQyxPQUFGLENBQVVKLE9BQVYsQ0FBMUIsRUFBOEM7TUFDNUMsSUFBSUcsSUFBSSxDQUFDckMsT0FBTCxJQUFnQnFDLElBQUksQ0FBQ3ZCLE1BQUwsS0FBZ0JxQixLQUFwQyxFQUEyQztRQUN6Q0ksZUFBQSxDQUFJQyxLQUFKLENBQVcsNEJBQTJCSCxJQUFJLENBQUN6QixRQUFTLElBQTFDLEdBQ0Msd0JBQXVCQSxRQUFTLG1CQUFrQndCLEdBQUksR0FEakU7O1FBR0FLLFVBQVUsR0FBR0wsR0FBYjtNQUNEO0lBQ0Y7O0lBQ0QsSUFBSUssVUFBSixFQUFnQjtNQUNkTixLQUFLLEdBQUdNLFVBQVI7O01BQ0FGLGVBQUEsQ0FBSUMsS0FBSixDQUFXLHlCQUF3QkwsS0FBTSxHQUF6QztJQUNEO0VBQ0Y7O0VBRUQsT0FBT0EsS0FBUDtBQUNEOztBQUVELFNBQVNPLGNBQVQsQ0FBeUI5QixRQUF6QixFQUFtQ3NCLE9BQW5DLEVBQTRDO0VBQzFDLElBQUlDLEtBQUo7O0VBQ0EsS0FBSyxNQUFNLENBQUNDLEdBQUQsRUFBTUMsSUFBTixDQUFYLElBQTBCcEMsZUFBQSxDQUFFcUMsT0FBRixDQUFVSixPQUFWLENBQTFCLEVBQThDO0lBQzVDLElBQUlHLElBQUksQ0FBQ3pCLFFBQUwsQ0FBYytCLFFBQWQsQ0FBdUIvQixRQUF2QixDQUFKLEVBQXNDO01BQ3BDdUIsS0FBSyxHQUFHQyxHQUFSO01BQ0E7SUFDRDtFQUNGOztFQUdELElBQUksQ0FBQ0QsS0FBRCxJQUFVdkIsUUFBUSxLQUFLeEIscUJBQTNCLEVBQWtEO0lBQ2hELE9BQU9zRCxjQUFjLENBQUN0RCxxQkFBRCxFQUF3QjhDLE9BQXhCLENBQXJCO0VBQ0Q7O0VBRUQsT0FBT0MsS0FBUDtBQUNEOztBQUVELFNBQVNTLDBCQUFULENBQXFDQyxTQUFyQyxFQUFnRFgsT0FBaEQsRUFBeUQ7RUFDdkQsSUFBSVksYUFBYSxHQUFHLEVBQXBCOztFQUdBLE1BQU1DLGlCQUFpQixHQUFHOUMsZUFBQSxDQUFFK0MsSUFBRixDQUFPLENBQy9CNUQscUJBRCtCLEVBRS9CQyw2QkFGK0IsRUFHL0JDLDZCQUgrQixFQUkvQkMscUJBSitCLEVBSy9CQyxrQkFMK0IsRUFNL0IsR0FBR3FELFNBTjRCLENBQVAsQ0FBMUI7O0VBUUFOLGVBQUEsQ0FBSUMsS0FBSixDQUFXLG9DQUFtQ08saUJBQWlCLENBQUNFLElBQWxCLENBQXVCLElBQXZCLENBQTZCLEVBQTNFOztFQUNBLEtBQUssTUFBTXJDLFFBQVgsSUFBdUJtQyxpQkFBdkIsRUFBMEM7SUFDeEMsTUFBTVosS0FBSyxHQUFHTyxjQUFjLENBQUM5QixRQUFELEVBQVdzQixPQUFYLENBQTVCOztJQUdBLElBQUlDLEtBQUosRUFBVztNQUNUVyxhQUFhLENBQUNyQixJQUFkLENBQW1CVSxLQUFuQjs7TUFDQUksZUFBQSxDQUFJQyxLQUFKLENBQVcscUJBQW9CTCxLQUFNLGlCQUFnQnZCLFFBQVMsR0FBOUQ7O01BQ0EsS0FBSyxNQUFNLENBQUN3QixHQUFELEVBQU1DLElBQU4sQ0FBWCxJQUEwQnBDLGVBQUEsQ0FBRXFDLE9BQUYsQ0FBVUosT0FBVixDQUExQixFQUE4QztRQUM1QyxJQUFJRyxJQUFJLENBQUNyQyxPQUFMLElBQWdCcUMsSUFBSSxDQUFDdkIsTUFBTCxLQUFnQnFCLEtBQXBDLEVBQTJDO1VBQ3pDSSxlQUFBLENBQUlDLEtBQUosQ0FBVyw0QkFBMkJILElBQUksQ0FBQ3pCLFFBQVMsSUFBMUMsR0FDQyx3QkFBdUJBLFFBQVMsbUJBQWtCd0IsR0FBSSxHQURqRTs7VUFFQVUsYUFBYSxDQUFDckIsSUFBZCxDQUFtQlcsR0FBbkI7UUFDRDtNQUNGO0lBQ0Y7RUFDRjs7RUFFRCxPQUFPbkMsZUFBQSxDQUFFK0MsSUFBRixDQUFPRixhQUFQLENBQVA7QUFDRDs7QUFFRCxTQUFTSSxXQUFULENBQXNCQyxNQUF0QixFQUE4QjtFQUU1QixNQUFNQyxNQUFNLEdBQUduRCxlQUFBLENBQUVxQyxPQUFGLENBQVVhLE1BQVYsRUFDWkUsTUFEWSxDQUNMLENBQUMsR0FBR0MsS0FBSCxDQUFELEtBQWVyRCxlQUFBLENBQUVzRCxLQUFGLENBQVFELEtBQVIsQ0FEVixFQUVaRSxHQUZZLENBRVIsQ0FBQyxDQUFDQyxLQUFELENBQUQsS0FBYUEsS0FGTCxDQUFmOztFQUdBLElBQUlMLE1BQU0sQ0FBQ00sTUFBWCxFQUFtQjtJQUNqQixNQUFNLElBQUlDLEtBQUosQ0FBVyxXQUFVQyxhQUFBLENBQUtDLFNBQUwsQ0FBZSxXQUFmLEVBQTRCVCxNQUFNLENBQUNNLE1BQW5DLENBQTJDLEtBQUlOLE1BQU0sQ0FBQ0gsSUFBUCxDQUFZLElBQVosQ0FBa0IsRUFBdEYsQ0FBTjtFQUNEO0FBQ0Y7O0FBRUQsU0FBU2EsZUFBVCxDQUEwQlIsS0FBMUIsRUFBaUNTLFNBQVMsR0FBRyxLQUE3QyxFQUFvRDtFQUNsRCxJQUFJLENBQUNULEtBQUwsRUFBWTtJQUNWLE9BQU9VLElBQUksQ0FBQ0MsU0FBTCxDQUFlWCxLQUFmLENBQVA7RUFDRDs7RUFJRCxJQUFJWSxVQUFVLEdBQUdqRSxlQUFBLENBQUVrRSxLQUFGLENBQVFiLEtBQVIsQ0FBakI7O0VBQ0EsS0FBSyxNQUFNYyxRQUFYLElBQXVCLENBQUMsTUFBRCxFQUFTLE9BQVQsRUFBa0IsT0FBbEIsRUFBMkIsT0FBM0IsRUFBb0MsT0FBcEMsRUFBNkMsVUFBN0MsQ0FBdkIsRUFBaUY7SUFDL0UsT0FBT0YsVUFBVSxDQUFDRSxRQUFELENBQWpCO0VBQ0Q7O0VBQ0QsT0FBT0wsU0FBUyxHQUFHQyxJQUFJLENBQUNDLFNBQUwsQ0FBZUMsVUFBZixFQUEyQixJQUEzQixFQUFpQyxDQUFqQyxDQUFILEdBQXlDRixJQUFJLENBQUNDLFNBQUwsQ0FBZUMsVUFBZixDQUF6RDtBQUNEOztBQUVELFNBQVNHLGVBQVQsR0FBNEI7RUFFMUIsSUFBSUMsT0FBSjtFQUNBLElBQUlDLE1BQUo7RUFDQSxNQUFNQyxPQUFPLEdBQUcsSUFBSUMsaUJBQUosQ0FBTSxDQUFDQyxHQUFELEVBQU1DLEdBQU4sS0FBYztJQUNsQ0wsT0FBTyxHQUFHSSxHQUFWO0lBQ0FILE1BQU0sR0FBR0ksR0FBVDtFQUNELENBSGUsQ0FBaEI7RUFJQSxPQUFPO0lBQ0xILE9BREs7SUFFTEYsT0FGSztJQUdMQztFQUhLLENBQVA7QUFLRDs7QUFFRCxTQUFTSyxhQUFULENBQXdCRixHQUF4QixFQUE2QjtFQUMzQixJQUFJekUsZUFBQSxDQUFFcUIsV0FBRixDQUFjb0QsR0FBZCxDQUFKLEVBQXdCO0lBQ3RCLE1BQU0sSUFBSWYsS0FBSixDQUFXLDJEQUEwRDFELGVBQUEsQ0FBRTRFLFFBQUYsQ0FBV2YsZUFBZSxDQUFDWSxHQUFELENBQTFCLEVBQWlDO01BQUNoQixNQUFNLEVBQUUvRDtJQUFULENBQWpDLENBQWdFLEVBQXJJLENBQU47RUFDRCxDQUZELE1BRU8sSUFBSU0sZUFBQSxDQUFFQyxRQUFGLENBQVd3RSxHQUFYLENBQUosRUFBcUI7SUFDMUIsSUFBSTtNQUNGQSxHQUFHLEdBQUdWLElBQUksQ0FBQ2MsS0FBTCxDQUFXSixHQUFYLENBQU47SUFDRCxDQUZELENBRUUsT0FBT0ssR0FBUCxFQUFZLENBR2I7RUFDRixDQVBNLE1BT0EsSUFBSSxDQUFDOUUsZUFBQSxDQUFFK0UsUUFBRixDQUFXTixHQUFYLENBQUwsRUFBc0I7SUFDM0IsTUFBTSxJQUFJZixLQUFKLENBQVcsZ0NBQStCLE9BQU9lLEdBQUksSUFBckQsQ0FBTjtFQUNEOztFQUVELElBQUlBLEdBQUcsQ0FBQ08sTUFBSixJQUFjUCxHQUFHLENBQUNPLE1BQUosS0FBZSxDQUFqQyxFQUFvQztJQUVsQyxNQUFNLElBQUFDLGtDQUFBLEVBQTJCUixHQUFHLENBQUNPLE1BQS9CLEVBQXVDUCxHQUFHLENBQUNwQixLQUFKLENBQVU2QixPQUFWLElBQXFCVCxHQUFHLENBQUNwQixLQUFoRSxDQUFOO0VBQ0Q7O0VBSUQsTUFBTUEsS0FBSyxHQUFHckQsZUFBQSxDQUFFTSxHQUFGLENBQU1tRSxHQUFOLEVBQVcsT0FBWCxJQUFzQkEsR0FBRyxDQUFDcEIsS0FBMUIsR0FBa0NvQixHQUFoRDs7RUFHQSxJQUFJekUsZUFBQSxDQUFFK0UsUUFBRixDQUFXMUIsS0FBWCxDQUFKLEVBQXVCO0lBQ3JCLEtBQUssTUFBTWMsUUFBWCxJQUF1QixDQUFDLE1BQUQsRUFBUyxPQUFULEVBQWtCLE9BQWxCLEVBQTJCLE9BQTNCLEVBQW9DLE9BQXBDLEVBQTZDLFVBQTdDLENBQXZCLEVBQWlGO01BQy9FLE9BQU9kLEtBQUssQ0FBQ2MsUUFBRCxDQUFaO0lBQ0Q7RUFDRjs7RUFDRCxPQUFPZCxLQUFQO0FBQ0QifQ==
|
|
226
|
+
}
|
|
227
|
+
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJXRUJfQ09OVEVOVF9CVU5ETEVfSUQiLCJXRUJfQ09OVEVOVF9QUk9DRVNTX0JVTkRMRV9JRCIsIlNBRkFSSV9WSUVXX1BST0NFU1NfQlVORExFX0lEIiwiU0FGQVJJX1ZJRVdfQlVORExFX0lEIiwiV0lMRENBUkRfQlVORExFX0lEIiwiSU5BQ1RJVkVfQVBQX0NPREUiLCJBQ0NFUFRFRF9QQUdFX1RZUEVTIiwiUkVTUE9OU0VfTE9HX0xFTkdUSCIsImFwcEluZm9Gcm9tRGljdCIsImRpY3QiLCJpZCIsIldJUkFwcGxpY2F0aW9uSWRlbnRpZmllcktleSIsImlzUHJveHkiLCJfIiwiaXNTdHJpbmciLCJXSVJJc0FwcGxpY2F0aW9uUHJveHlLZXkiLCJ0b0xvd2VyQ2FzZSIsImlzQXV0b21hdGlvbkVuYWJsZWQiLCJXSVJSZW1vdGVBdXRvbWF0aW9uRW5hYmxlZEtleSIsImhhcyIsIldJUkF1dG9tYXRpb25BdmFpbGFiaWxpdHlLZXkiLCJlbnRyeSIsIm5hbWUiLCJXSVJBcHBsaWNhdGlvbk5hbWVLZXkiLCJidW5kbGVJZCIsIldJUkFwcGxpY2F0aW9uQnVuZGxlSWRlbnRpZmllcktleSIsImhvc3RJZCIsIldJUkhvc3RBcHBsaWNhdGlvbklkZW50aWZpZXJLZXkiLCJpc0FjdGl2ZSIsIldJUklzQXBwbGljYXRpb25BY3RpdmVLZXkiLCJwYWdlQXJyYXlGcm9tRGljdCIsInBhZ2VEaWN0IiwibmV3UGFnZUFycmF5IiwidmFsdWVzIiwiaXNVbmRlZmluZWQiLCJXSVJUeXBlS2V5IiwiaW5jbHVkZXMiLCJwdXNoIiwiV0lSUGFnZUlkZW50aWZpZXJLZXkiLCJ0aXRsZSIsIldJUlRpdGxlS2V5IiwidXJsIiwiV0lSVVJMS2V5IiwiaXNLZXkiLCJXSVJDb25uZWN0aW9uSWRlbnRpZmllcktleSIsImdldERlYnVnZ2VyQXBwS2V5IiwiYXBwRGljdCIsImFwcElkIiwia2V5IiwiZGF0YSIsInRvUGFpcnMiLCJsb2ciLCJkZWJ1ZyIsInByb3h5QXBwSWQiLCJhcHBJZEZvckJ1bmRsZSIsImVuZHNXaXRoIiwiZ2V0UG9zc2libGVEZWJ1Z2dlckFwcEtleXMiLCJidW5kbGVJZHMiLCJwcm94aWVkQXBwSWRzIiwicG9zc2libGVCdW5kbGVJZHMiLCJ1bmlxIiwiam9pbiIsImNoZWNrUGFyYW1zIiwicGFyYW1zIiwiZXJyb3JzIiwiZmlsdGVyIiwidmFsdWUiLCJpc05pbCIsIm1hcCIsInBhcmFtIiwibGVuZ3RoIiwiRXJyb3IiLCJ1dGlsIiwicGx1cmFsaXplIiwic2ltcGxlU3RyaW5naWZ5IiwibXVsdGlsaW5lIiwiSlNPTiIsInN0cmluZ2lmeSIsImNsZWFuVmFsdWUiLCJjbG9uZSIsInByb3BlcnR5IiwiZGVmZXJyZWRQcm9taXNlIiwicmVzb2x2ZSIsInJlamVjdCIsInByb21pc2UiLCJCIiwicmVzIiwicmVqIiwiY29udmVydFJlc3VsdCIsInRydW5jYXRlIiwicGFyc2UiLCJlcnIiLCJpc09iamVjdCIsInN0YXR1cyIsImVycm9yRnJvbU1KU09OV1BTdGF0dXNDb2RlIiwibWVzc2FnZSJdLCJzb3VyY2VzIjpbIi4uLy4uL2xpYi91dGlscy5qcyJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgbG9nIGZyb20gJy4vbG9nZ2VyJztcbmltcG9ydCBfIGZyb20gJ2xvZGFzaCc7XG5pbXBvcnQgQiBmcm9tICdibHVlYmlyZCc7XG5pbXBvcnQgeyBlcnJvckZyb21NSlNPTldQU3RhdHVzQ29kZSB9IGZyb20gJ2FwcGl1bS9kcml2ZXInO1xuaW1wb3J0IHsgdXRpbCB9IGZyb20gJ2FwcGl1bS9zdXBwb3J0JztcblxuXG5jb25zdCBXRUJfQ09OVEVOVF9CVU5ETEVfSUQgPSAnY29tLmFwcGxlLldlYktpdC5XZWJDb250ZW50JztcbmNvbnN0IFdFQl9DT05URU5UX1BST0NFU1NfQlVORExFX0lEID0gJ3Byb2Nlc3MtY29tLmFwcGxlLldlYktpdC5XZWJDb250ZW50JztcbmNvbnN0IFNBRkFSSV9WSUVXX1BST0NFU1NfQlVORExFX0lEID0gJ3Byb2Nlc3MtU2FmYXJpVmlld1NlcnZpY2UnO1xuY29uc3QgU0FGQVJJX1ZJRVdfQlVORExFX0lEID0gJ2NvbS5hcHBsZS5TYWZhcmlWaWV3U2VydmljZSc7XG5jb25zdCBXSUxEQ0FSRF9CVU5ETEVfSUQgPSAnKic7XG5cbmNvbnN0IElOQUNUSVZFX0FQUF9DT0RFID0gMDtcblxuLy8gdmFsdWVzIGZvciB0aGUgcGFnZSBgV0lSVHlwZUtleWAgZW50cnlcbmNvbnN0IEFDQ0VQVEVEX1BBR0VfVFlQRVMgPSBbXG4gICdXSVJUeXBlV2ViJywgLy8gdXAgdG8gaU9TIDExLjNcbiAgJ1dJUlR5cGVXZWJQYWdlJywgLy8gaU9TIDExLjRcbiAgJ1dJUlR5cGVQYWdlJywgLy8gaU9TIDExLjQgd2Vidmlld1xuXTtcblxuY29uc3QgUkVTUE9OU0VfTE9HX0xFTkdUSCA9IDEwMDtcblxuLypcbiAqIFRha2VzIGEgZGljdGlvbmFyeSBmcm9tIHRoZSByZW1vdGUgZGVidWdnZXIgYW5kIG1ha2VzIGEgbW9yZSBtYW5hZ2VhYmxlXG4gKiBkaWN0aW9uYXJ5IHdob3NlIGtleXMgYXJlIHVuZGVyc3RhbmRhYmxlXG4gKi9cbmZ1bmN0aW9uIGFwcEluZm9Gcm9tRGljdCAoZGljdCkge1xuICBjb25zdCBpZCA9IGRpY3QuV0lSQXBwbGljYXRpb25JZGVudGlmaWVyS2V5O1xuICBjb25zdCBpc1Byb3h5ID0gXy5pc1N0cmluZyhkaWN0LldJUklzQXBwbGljYXRpb25Qcm94eUtleSlcbiAgICA/IGRpY3QuV0lSSXNBcHBsaWNhdGlvblByb3h5S2V5LnRvTG93ZXJDYXNlKCkgPT09ICd0cnVlJ1xuICAgIDogZGljdC5XSVJJc0FwcGxpY2F0aW9uUHJveHlLZXk7XG4gIC8vIGF1dG9tYXRpb24gZW5hYmxlZCBjYW4gYmUgZWl0aGVyIGZyb20gdGhlIGtleXNcbiAgLy8gICAtIFdJUlJlbW90ZUF1dG9tYXRpb25FbmFibGVkS2V5IChib29sZWFuKVxuICAvLyAgIC0gV0lSQXV0b21hdGlvbkF2YWlsYWJpbGl0eUtleSAoc3RyaW5nIG9yIGJvb2xlYW4pXG4gIGxldCBpc0F1dG9tYXRpb25FbmFibGVkID0gISFkaWN0LldJUlJlbW90ZUF1dG9tYXRpb25FbmFibGVkS2V5O1xuICBpZiAoXy5oYXMoZGljdCwgJ1dJUkF1dG9tYXRpb25BdmFpbGFiaWxpdHlLZXknKSkge1xuICAgIGlmIChfLmlzU3RyaW5nKGRpY3QuV0lSQXV0b21hdGlvbkF2YWlsYWJpbGl0eUtleSkpIHtcbiAgICAgIGlzQXV0b21hdGlvbkVuYWJsZWQgPSBkaWN0LldJUkF1dG9tYXRpb25BdmFpbGFiaWxpdHlLZXkgPT09ICdXSVJBdXRvbWF0aW9uQXZhaWxhYmlsaXR5VW5rbm93bidcbiAgICAgICAgPyAnVW5rbm93bidcbiAgICAgICAgOiBkaWN0LldJUkF1dG9tYXRpb25BdmFpbGFiaWxpdHlLZXkgPT09ICdXSVJBdXRvbWF0aW9uQXZhaWxhYmlsaXR5QXZhaWxhYmxlJztcbiAgICB9IGVsc2Uge1xuICAgICAgaXNBdXRvbWF0aW9uRW5hYmxlZCA9ICEhZGljdC5XSVJBdXRvbWF0aW9uQXZhaWxhYmlsaXR5S2V5O1xuICAgIH1cbiAgfVxuICBjb25zdCBlbnRyeSA9IHtcbiAgICBpZCxcbiAgICBpc1Byb3h5LFxuICAgIG5hbWU6IGRpY3QuV0lSQXBwbGljYXRpb25OYW1lS2V5LFxuICAgIGJ1bmRsZUlkOiBkaWN0LldJUkFwcGxpY2F0aW9uQnVuZGxlSWRlbnRpZmllcktleSxcbiAgICBob3N0SWQ6IGRpY3QuV0lSSG9zdEFwcGxpY2F0aW9uSWRlbnRpZmllcktleSxcbiAgICBpc0FjdGl2ZTogZGljdC5XSVJJc0FwcGxpY2F0aW9uQWN0aXZlS2V5ICE9PSBJTkFDVElWRV9BUFBfQ09ERSxcbiAgICBpc0F1dG9tYXRpb25FbmFibGVkLFxuICB9O1xuXG4gIHJldHVybiBbaWQsIGVudHJ5XTtcbn1cblxuLypcbiAqIFRha2UgYSBkaWN0aW9uYXJ5IGZyb20gdGhlIHJlbW90ZSBkZWJ1Z2dlciBhbmQgbWFrZXMgYSBtb3JlIG1hbmFnZWFibGVcbiAqIGRpY3Rpb25hcnkgb2YgcGFnZXMgYXZhaWxhYmxlLlxuICovXG5mdW5jdGlvbiBwYWdlQXJyYXlGcm9tRGljdCAocGFnZURpY3QpIHtcbiAgaWYgKHBhZ2VEaWN0LmlkKSB7XG4gICAgLy8gdGhlIHBhZ2UgaXMgYWxyZWFkeSB0cmFuc2xhdGVkLCBzbyB3cmFwIGluIGFuIGFycmF5IGFuZCBwYXNzIGJhY2tcbiAgICByZXR1cm4gW3BhZ2VEaWN0XTtcbiAgfVxuICBsZXQgbmV3UGFnZUFycmF5ID0gW107XG4gIGZvciAoY29uc3QgZGljdCBvZiBfLnZhbHVlcyhwYWdlRGljdCkpIHtcbiAgICAvLyBjb3VudCBvbmx5IFdJUlR5cGVXZWIgcGFnZXMgYW5kIGlnbm9yZSBhbGwgb3RoZXJzIChXSVJUeXBlSmF2YVNjcmlwdCBldGMpXG4gICAgaWYgKF8uaXNVbmRlZmluZWQoZGljdC5XSVJUeXBlS2V5KSB8fCBBQ0NFUFRFRF9QQUdFX1RZUEVTLmluY2x1ZGVzKGRpY3QuV0lSVHlwZUtleSkpIHtcbiAgICAgIG5ld1BhZ2VBcnJheS5wdXNoKHtcbiAgICAgICAgaWQ6IGRpY3QuV0lSUGFnZUlkZW50aWZpZXJLZXksXG4gICAgICAgIHRpdGxlOiBkaWN0LldJUlRpdGxlS2V5LFxuICAgICAgICB1cmw6IGRpY3QuV0lSVVJMS2V5LFxuICAgICAgICBpc0tleTogIV8uaXNVbmRlZmluZWQoZGljdC5XSVJDb25uZWN0aW9uSWRlbnRpZmllcktleSksXG4gICAgICB9KTtcbiAgICB9XG4gIH1cbiAgcmV0dXJuIG5ld1BhZ2VBcnJheTtcbn1cblxuLypcbiAqIEdpdmVuIGEgYnVuZGxlIGlkLCBmaW5kcyB0aGUgY29ycmVjdCByZW1vdGUgZGVidWdnZXIgYXBwIHRoYXQgaXNcbiAqIGNvbm5lY3RlZC5cbiAqL1xuZnVuY3Rpb24gZ2V0RGVidWdnZXJBcHBLZXkgKGJ1bmRsZUlkLCBhcHBEaWN0KSB7XG4gIGxldCBhcHBJZDtcbiAgZm9yIChjb25zdCBba2V5LCBkYXRhXSBvZiBfLnRvUGFpcnMoYXBwRGljdCkpIHtcbiAgICBpZiAoZGF0YS5idW5kbGVJZCA9PT0gYnVuZGxlSWQpIHtcbiAgICAgIGFwcElkID0ga2V5O1xuICAgICAgYnJlYWs7XG4gICAgfVxuICB9XG4gIC8vIG5vdyB3ZSBuZWVkIHRvIGRldGVybWluZSBpZiB3ZSBzaG91bGQgcGljayBhIHByb3h5IGZvciB0aGlzIGluc3RlYWRcbiAgaWYgKGFwcElkKSB7XG4gICAgbG9nLmRlYnVnKGBGb3VuZCBhcHAgaWQga2V5ICcke2FwcElkfScgZm9yIGJ1bmRsZSAnJHtidW5kbGVJZH0nYCk7XG4gICAgbGV0IHByb3h5QXBwSWQ7XG4gICAgZm9yIChjb25zdCBba2V5LCBkYXRhXSBvZiBfLnRvUGFpcnMoYXBwRGljdCkpIHtcbiAgICAgIGlmIChkYXRhLmlzUHJveHkgJiYgZGF0YS5ob3N0SWQgPT09IGFwcElkKSB7XG4gICAgICAgIGxvZy5kZWJ1ZyhgRm91bmQgc2VwYXJhdGUgYnVuZGxlSWQgJyR7ZGF0YS5idW5kbGVJZH0nIGAgK1xuICAgICAgICAgICAgICAgICAgYGFjdGluZyBhcyBwcm94eSBmb3IgJyR7YnVuZGxlSWR9Jywgd2l0aCBhcHAgaWQgJyR7a2V5fSdgKTtcbiAgICAgICAgLy8gc2V0IHRoZSBhcHAgaWQuLi4gdGhlIGxhc3Qgb25lIHdpbGwgYmUgdXNlZCwgc28ganVzdCBrZWVwIHJlLWFzc2lnbmluZ1xuICAgICAgICBwcm94eUFwcElkID0ga2V5O1xuICAgICAgfVxuICAgIH1cbiAgICBpZiAocHJveHlBcHBJZCkge1xuICAgICAgYXBwSWQgPSBwcm94eUFwcElkO1xuICAgICAgbG9nLmRlYnVnKGBVc2luZyBwcm94aWVkIGFwcCBpZCAnJHthcHBJZH0nYCk7XG4gICAgfVxuICB9XG5cbiAgcmV0dXJuIGFwcElkO1xufVxuXG5mdW5jdGlvbiBhcHBJZEZvckJ1bmRsZSAoYnVuZGxlSWQsIGFwcERpY3QpIHtcbiAgbGV0IGFwcElkO1xuICBmb3IgKGNvbnN0IFtrZXksIGRhdGFdIG9mIF8udG9QYWlycyhhcHBEaWN0KSkge1xuICAgIGlmIChkYXRhLmJ1bmRsZUlkLmVuZHNXaXRoKGJ1bmRsZUlkKSkge1xuICAgICAgYXBwSWQgPSBrZXk7XG4gICAgICBicmVhaztcbiAgICB9XG4gIH1cblxuICAvLyBpZiBub3RoaW5nIGlzIGZvdW5kLCB0cnkgdG8gZ2V0IHRoZSBnZW5lcmljIGFwcFxuICBpZiAoIWFwcElkICYmIGJ1bmRsZUlkICE9PSBXRUJfQ09OVEVOVF9CVU5ETEVfSUQpIHtcbiAgICByZXR1cm4gYXBwSWRGb3JCdW5kbGUoV0VCX0NPTlRFTlRfQlVORExFX0lELCBhcHBEaWN0KTtcbiAgfVxuXG4gIHJldHVybiBhcHBJZDtcbn1cblxuZnVuY3Rpb24gZ2V0UG9zc2libGVEZWJ1Z2dlckFwcEtleXMgKGJ1bmRsZUlkcywgYXBwRGljdCkge1xuICBsZXQgcHJveGllZEFwcElkcyA9IFtdO1xuXG4gIC8vIGdvIHRocm91Z2ggdGhlIHBvc3NpYmxlIGJ1bmRsZSBpZGVudGlmaWVyc1xuICBjb25zdCBwb3NzaWJsZUJ1bmRsZUlkcyA9IF8udW5pcShbXG4gICAgV0VCX0NPTlRFTlRfQlVORExFX0lELFxuICAgIFdFQl9DT05URU5UX1BST0NFU1NfQlVORExFX0lELFxuICAgIFNBRkFSSV9WSUVXX1BST0NFU1NfQlVORExFX0lELFxuICAgIFNBRkFSSV9WSUVXX0JVTkRMRV9JRCxcbiAgICBXSUxEQ0FSRF9CVU5ETEVfSUQsXG4gICAgLi4uYnVuZGxlSWRzLFxuICBdKTtcbiAgbG9nLmRlYnVnKGBDaGVja2luZyBmb3IgYnVuZGxlIGlkZW50aWZpZXJzOiAke3Bvc3NpYmxlQnVuZGxlSWRzLmpvaW4oJywgJyl9YCk7XG4gIGZvciAoY29uc3QgYnVuZGxlSWQgb2YgcG9zc2libGVCdW5kbGVJZHMpIHtcbiAgICBjb25zdCBhcHBJZCA9IGFwcElkRm9yQnVuZGxlKGJ1bmRsZUlkLCBhcHBEaWN0KTtcblxuICAgIC8vIG5vdyB3ZSBuZWVkIHRvIGRldGVybWluZSBpZiB3ZSBzaG91bGQgcGljayBhIHByb3h5IGZvciB0aGlzIGluc3RlYWRcbiAgICBpZiAoYXBwSWQpIHtcbiAgICAgIHByb3hpZWRBcHBJZHMucHVzaChhcHBJZCk7XG4gICAgICBsb2cuZGVidWcoYEZvdW5kIGFwcCBpZCBrZXkgJyR7YXBwSWR9JyBmb3IgYnVuZGxlICcke2J1bmRsZUlkfSdgKTtcbiAgICAgIGZvciAoY29uc3QgW2tleSwgZGF0YV0gb2YgXy50b1BhaXJzKGFwcERpY3QpKSB7XG4gICAgICAgIGlmIChkYXRhLmlzUHJveHkgJiYgZGF0YS5ob3N0SWQgPT09IGFwcElkKSB7XG4gICAgICAgICAgbG9nLmRlYnVnKGBGb3VuZCBzZXBhcmF0ZSBidW5kbGVJZCAnJHtkYXRhLmJ1bmRsZUlkfScgYCArXG4gICAgICAgICAgICAgICAgICAgIGBhY3RpbmcgYXMgcHJveHkgZm9yICcke2J1bmRsZUlkfScsIHdpdGggYXBwIGlkICcke2tleX0nYCk7XG4gICAgICAgICAgcHJveGllZEFwcElkcy5wdXNoKGtleSk7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICByZXR1cm4gXy51bmlxKHByb3hpZWRBcHBJZHMpO1xufVxuXG5mdW5jdGlvbiBjaGVja1BhcmFtcyAocGFyYW1zKSB7XG4gIC8vIGNoZWNrIGlmIGFsbCBwYXJhbWV0ZXJzIGhhdmUgYSB2YWx1ZVxuICBjb25zdCBlcnJvcnMgPSBfLnRvUGFpcnMocGFyYW1zKVxuICAgIC5maWx0ZXIoKFssIHZhbHVlXSkgPT4gXy5pc05pbCh2YWx1ZSkpXG4gICAgLm1hcCgoW3BhcmFtXSkgPT4gcGFyYW0pO1xuICBpZiAoZXJyb3JzLmxlbmd0aCkge1xuICAgIHRocm93IG5ldyBFcnJvcihgTWlzc2luZyAke3V0aWwucGx1cmFsaXplKCdwYXJhbWV0ZXInLCBlcnJvcnMubGVuZ3RoKX06ICR7ZXJyb3JzLmpvaW4oJywgJyl9YCk7XG4gIH1cbn1cblxuZnVuY3Rpb24gc2ltcGxlU3RyaW5naWZ5ICh2YWx1ZSwgbXVsdGlsaW5lID0gZmFsc2UpIHtcbiAgaWYgKCF2YWx1ZSkge1xuICAgIHJldHVybiBKU09OLnN0cmluZ2lmeSh2YWx1ZSk7XG4gIH1cblxuICAvLyB3ZSBnZXQgYmFjayBvYmplY3RzIHNvbWV0aW1lcyB3aXRoIHN0cmluZyB2ZXJzaW9ucyBvZiBmdW5jdGlvbnNcbiAgLy8gd2hpY2ggbXVkZHkgdGhlIGxvZ3NcbiAgbGV0IGNsZWFuVmFsdWUgPSBfLmNsb25lKHZhbHVlKTtcbiAgZm9yIChjb25zdCBwcm9wZXJ0eSBvZiBbJ2NlaWwnLCAnY2xvbmUnLCAnZmxvb3InLCAncm91bmQnLCAnc2NhbGUnLCAndG9TdHJpbmcnXSkge1xuICAgIGRlbGV0ZSBjbGVhblZhbHVlW3Byb3BlcnR5XTtcbiAgfVxuICByZXR1cm4gbXVsdGlsaW5lID8gSlNPTi5zdHJpbmdpZnkoY2xlYW5WYWx1ZSwgbnVsbCwgMikgOiBKU09OLnN0cmluZ2lmeShjbGVhblZhbHVlKTtcbn1cblxuZnVuY3Rpb24gZGVmZXJyZWRQcm9taXNlICgpIHtcbiAgLy8gaHR0cDovL2JsdWViaXJkanMuY29tL2RvY3MvYXBpL2RlZmVycmVkLW1pZ3JhdGlvbi5odG1sXG4gIGxldCByZXNvbHZlO1xuICBsZXQgcmVqZWN0O1xuICBjb25zdCBwcm9taXNlID0gbmV3IEIoKHJlcywgcmVqKSA9PiB7IC8vIGVzbGludC1kaXNhYmxlLWxpbmUgcHJvbWlzZS9wYXJhbS1uYW1lc1xuICAgIHJlc29sdmUgPSByZXM7XG4gICAgcmVqZWN0ID0gcmVqO1xuICB9KTtcbiAgcmV0dXJuIHtcbiAgICBwcm9taXNlLFxuICAgIHJlc29sdmUsXG4gICAgcmVqZWN0XG4gIH07XG59XG5cbmZ1bmN0aW9uIGNvbnZlcnRSZXN1bHQgKHJlcykge1xuICBpZiAoXy5pc1VuZGVmaW5lZChyZXMpKSB7XG4gICAgdGhyb3cgbmV3IEVycm9yKGBEaWQgbm90IGdldCBPSyByZXN1bHQgZnJvbSByZW1vdGUgZGVidWdnZXIuIFJlc3VsdCB3YXM6ICR7Xy50cnVuY2F0ZShzaW1wbGVTdHJpbmdpZnkocmVzKSwge2xlbmd0aDogUkVTUE9OU0VfTE9HX0xFTkdUSH0pfWApO1xuICB9IGVsc2UgaWYgKF8uaXNTdHJpbmcocmVzKSkge1xuICAgIHRyeSB7XG4gICAgICByZXMgPSBKU09OLnBhcnNlKHJlcyk7XG4gICAgfSBjYXRjaCAoZXJyKSB7XG4gICAgICAvLyB3ZSBtaWdodCBnZXQgYSBzZXJpYWxpemVkIG9iamVjdCwgYnV0IHdlIG1pZ2h0IG5vdFxuICAgICAgLy8gaWYgd2UgZ2V0IGhlcmUsIGl0IGlzIGp1c3QgYSB2YWx1ZVxuICAgIH1cbiAgfSBlbHNlIGlmICghXy5pc09iamVjdChyZXMpKSB7XG4gICAgdGhyb3cgbmV3IEVycm9yKGBSZXN1bHQgaGFzIHVuZXhwZWN0ZWQgdHlwZTogKCR7dHlwZW9mIHJlc30pLmApO1xuICB9XG5cbiAgaWYgKHJlcy5zdGF0dXMgJiYgcmVzLnN0YXR1cyAhPT0gMCkge1xuICAgIC8vIHdlIGdvdCBzb21lIGZvcm0gb2YgZXJyb3IuXG4gICAgdGhyb3cgZXJyb3JGcm9tTUpTT05XUFN0YXR1c0NvZGUocmVzLnN0YXR1cywgcmVzLnZhbHVlLm1lc3NhZ2UgfHwgcmVzLnZhbHVlKTtcbiAgfVxuXG4gIC8vIHdpdGggZWl0aGVyIGhhdmUgYW4gb2JqZWN0IHdpdGggYSBgdmFsdWVgIHByb3BlcnR5IChldmVuIGlmIGBudWxsYCksXG4gIC8vIG9yIGEgcGxhaW4gb2JqZWN0XG4gIGNvbnN0IHZhbHVlID0gXy5oYXMocmVzLCAndmFsdWUnKSA/IHJlcy52YWx1ZSA6IHJlcztcblxuICAvLyBnZXQgcmlkIG9mIG5vaXN5IGZ1bmN0aW9ucyBvbiBvYmplY3RzXG4gIGlmIChfLmlzT2JqZWN0KHZhbHVlKSkge1xuICAgIGZvciAoY29uc3QgcHJvcGVydHkgb2YgWydjZWlsJywgJ2Nsb25lJywgJ2Zsb29yJywgJ3JvdW5kJywgJ3NjYWxlJywgJ3RvU3RyaW5nJ10pIHtcbiAgICAgIGRlbGV0ZSB2YWx1ZVtwcm9wZXJ0eV07XG4gICAgfVxuICB9XG4gIHJldHVybiB2YWx1ZTtcbn1cblxuZXhwb3J0IHtcbiAgYXBwSW5mb0Zyb21EaWN0LCBwYWdlQXJyYXlGcm9tRGljdCwgZ2V0RGVidWdnZXJBcHBLZXksXG4gIGdldFBvc3NpYmxlRGVidWdnZXJBcHBLZXlzLCBjaGVja1BhcmFtcywgc2ltcGxlU3RyaW5naWZ5LCBkZWZlcnJlZFByb21pc2UsXG4gIGNvbnZlcnRSZXN1bHQsIFJFU1BPTlNFX0xPR19MRU5HVEgsXG59O1xuIl0sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7Ozs7Ozs7O0FBQUE7O0FBQ0E7O0FBQ0E7O0FBQ0E7O0FBQ0E7O0FBR0EsTUFBTUEscUJBQXFCLEdBQUcsNkJBQTlCO0FBQ0EsTUFBTUMsNkJBQTZCLEdBQUcscUNBQXRDO0FBQ0EsTUFBTUMsNkJBQTZCLEdBQUcsMkJBQXRDO0FBQ0EsTUFBTUMscUJBQXFCLEdBQUcsNkJBQTlCO0FBQ0EsTUFBTUMsa0JBQWtCLEdBQUcsR0FBM0I7QUFFQSxNQUFNQyxpQkFBaUIsR0FBRyxDQUExQjtBQUdBLE1BQU1DLG1CQUFtQixHQUFHLENBQzFCLFlBRDBCLEVBRTFCLGdCQUYwQixFQUcxQixhQUgwQixDQUE1QjtBQU1BLE1BQU1DLG1CQUFtQixHQUFHLEdBQTVCOzs7QUFNQSxTQUFTQyxlQUFULENBQTBCQyxJQUExQixFQUFnQztFQUM5QixNQUFNQyxFQUFFLEdBQUdELElBQUksQ0FBQ0UsMkJBQWhCO0VBQ0EsTUFBTUMsT0FBTyxHQUFHQyxlQUFBLENBQUVDLFFBQUYsQ0FBV0wsSUFBSSxDQUFDTSx3QkFBaEIsSUFDWk4sSUFBSSxDQUFDTSx3QkFBTCxDQUE4QkMsV0FBOUIsT0FBZ0QsTUFEcEMsR0FFWlAsSUFBSSxDQUFDTSx3QkFGVDtFQU1BLElBQUlFLG1CQUFtQixHQUFHLENBQUMsQ0FBQ1IsSUFBSSxDQUFDUyw2QkFBakM7O0VBQ0EsSUFBSUwsZUFBQSxDQUFFTSxHQUFGLENBQU1WLElBQU4sRUFBWSw4QkFBWixDQUFKLEVBQWlEO0lBQy9DLElBQUlJLGVBQUEsQ0FBRUMsUUFBRixDQUFXTCxJQUFJLENBQUNXLDRCQUFoQixDQUFKLEVBQW1EO01BQ2pESCxtQkFBbUIsR0FBR1IsSUFBSSxDQUFDVyw0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
|
package/package.json
CHANGED
|
@@ -4,8 +4,8 @@
|
|
|
4
4
|
"keywords": [
|
|
5
5
|
"appium"
|
|
6
6
|
],
|
|
7
|
-
"version": "9.1.
|
|
8
|
-
"author": "
|
|
7
|
+
"version": "9.1.3",
|
|
8
|
+
"author": "Appium Contributors",
|
|
9
9
|
"license": "Apache-2.0",
|
|
10
10
|
"repository": {
|
|
11
11
|
"type": "git",
|
|
@@ -14,9 +14,10 @@
|
|
|
14
14
|
"bugs": {
|
|
15
15
|
"url": "https://github.com/appium/appium-remote-debugger/issues"
|
|
16
16
|
},
|
|
17
|
-
"engines":
|
|
18
|
-
"node"
|
|
19
|
-
|
|
17
|
+
"engines": {
|
|
18
|
+
"node": ">=14",
|
|
19
|
+
"npm": ">=8"
|
|
20
|
+
},
|
|
20
21
|
"main": "./build/index.js",
|
|
21
22
|
"bin": {},
|
|
22
23
|
"directories": {
|
|
@@ -27,6 +28,7 @@
|
|
|
27
28
|
"lib",
|
|
28
29
|
"build/index.js",
|
|
29
30
|
"build/lib",
|
|
31
|
+
"scripts",
|
|
30
32
|
"atoms"
|
|
31
33
|
],
|
|
32
34
|
"dependencies": {
|
|
@@ -35,50 +37,71 @@
|
|
|
35
37
|
"async-lock": "^1.2.2",
|
|
36
38
|
"asyncbox": "^2.6.0",
|
|
37
39
|
"bluebird": "^3.4.7",
|
|
40
|
+
"fancy-log": "^2.0.0",
|
|
41
|
+
"glob": "^8.0.3",
|
|
38
42
|
"lodash": "^4.17.11",
|
|
39
|
-
"source-map-support": "^0.x"
|
|
43
|
+
"source-map-support": "^0.x",
|
|
44
|
+
"teen_process": "^2.0.0"
|
|
40
45
|
},
|
|
41
46
|
"scripts": {
|
|
42
|
-
"
|
|
43
|
-
"
|
|
44
|
-
"
|
|
45
|
-
"
|
|
46
|
-
"mocha": "mocha",
|
|
47
|
-
"e2e-test": "gulp e2e-test",
|
|
48
|
-
"coverage": "gulp coveralls",
|
|
49
|
-
"build": "gulp transpile",
|
|
47
|
+
"build": "rm -rf build && babel --out-dir=build/lib lib && babel --out-dir=build index.js",
|
|
48
|
+
"dev": "npm run build -- --watch",
|
|
49
|
+
"lint": "eslint .",
|
|
50
|
+
"lint:fix": "npm run lint -- --fix",
|
|
50
51
|
"precommit-msg": "echo 'Pre-commit checks...' && exit 0",
|
|
51
|
-
"precommit-
|
|
52
|
-
"
|
|
53
|
-
"
|
|
52
|
+
"precommit-lint": "lint-staged",
|
|
53
|
+
"prepare": "npm run build",
|
|
54
|
+
"test": "mocha --exit --timeout 1m \"./test/unit/**/*-specs.js\"",
|
|
55
|
+
"e2e-test": "mocha --exit --timeout 1m \"./test/functional/**/*-specs.js\"",
|
|
54
56
|
"inspect-safari": "node build/bin/web_inspector_proxy.js",
|
|
55
|
-
"build:atoms": "
|
|
56
|
-
"build:atoms:import": "
|
|
57
|
-
"build:selenium": "
|
|
57
|
+
"build:atoms": "node scripts/build-atoms.js",
|
|
58
|
+
"build:atoms:import": "node scripts/import-atoms.js",
|
|
59
|
+
"build:selenium": "node scripts/build-selenium.js"
|
|
58
60
|
},
|
|
59
61
|
"pre-commit": [
|
|
60
62
|
"precommit-msg",
|
|
61
|
-
"precommit-
|
|
63
|
+
"precommit-lint"
|
|
62
64
|
],
|
|
65
|
+
"lint-staged": {
|
|
66
|
+
"*.js": [
|
|
67
|
+
"eslint --fix"
|
|
68
|
+
]
|
|
69
|
+
},
|
|
70
|
+
"prettier": {
|
|
71
|
+
"bracketSpacing": false,
|
|
72
|
+
"printWidth": 100,
|
|
73
|
+
"singleQuote": true
|
|
74
|
+
},
|
|
63
75
|
"peerDependencies": {
|
|
64
76
|
"appium": "^2.0.0-beta.40"
|
|
65
77
|
},
|
|
66
78
|
"devDependencies": {
|
|
67
|
-
"@appium/gulp-plugins": "^7.0.0",
|
|
68
79
|
"@appium/eslint-config-appium": "^6.0.0",
|
|
80
|
+
"@babel/cli": "^7.18.10",
|
|
81
|
+
"@babel/core": "^7.18.10",
|
|
82
|
+
"@babel/eslint-parser": "^7.18.9",
|
|
83
|
+
"@babel/plugin-transform-runtime": "^7.18.10",
|
|
84
|
+
"@babel/preset-env": "^7.18.10",
|
|
85
|
+
"@babel/register": "^7.18.9",
|
|
69
86
|
"@semantic-release/git": "^10.0.1",
|
|
87
|
+
"babel-plugin-source-map-support": "^2.2.0",
|
|
70
88
|
"appium-ios-simulator": "^4.0.0",
|
|
71
89
|
"chai": "^4.1.2",
|
|
72
90
|
"chai-as-promised": "^7.1.1",
|
|
91
|
+
"eslint": "^7.32.0",
|
|
73
92
|
"eslint-config-prettier": "^8.5.0",
|
|
74
93
|
"fancy-log": "^2.0.0",
|
|
75
94
|
"finalhandler": "^1.1.2",
|
|
76
|
-
"
|
|
95
|
+
"eslint-plugin-import": "^2.26.0",
|
|
96
|
+
"eslint-plugin-mocha": "^9.0.0",
|
|
97
|
+
"eslint-plugin-promise": "^6.0.0",
|
|
98
|
+
"lint-staged": "^13.0.3",
|
|
77
99
|
"mocha": "^10.0.0",
|
|
78
100
|
"mocha-junit-reporter": "^2.0.0",
|
|
79
101
|
"mocha-multi-reporters": "^1.5.1",
|
|
80
102
|
"node-simctl": "^7.0.1",
|
|
81
103
|
"pre-commit": "^1.1.3",
|
|
104
|
+
"prettier": "^2.7.1",
|
|
82
105
|
"serve-static": "^1.14.1",
|
|
83
106
|
"semantic-release": "^19.0.2",
|
|
84
107
|
"sinon": "^14.0.0"
|
|
@@ -0,0 +1,194 @@
|
|
|
1
|
+
const path = require('path');
|
|
2
|
+
const log = require('fancy-log');
|
|
3
|
+
const fs = require('fs');
|
|
4
|
+
const { exec, SubProcess } = require('teen_process');
|
|
5
|
+
const glob = require('glob');
|
|
6
|
+
const B = require('bluebird');
|
|
7
|
+
|
|
8
|
+
const SELENIUM_BRANCH = 'selenium-3.141.59';
|
|
9
|
+
const SELENIUM_GITHUB = 'https://github.com/SeleniumHQ/selenium.git';
|
|
10
|
+
|
|
11
|
+
const TMP_DIRECTORY = path.resolve(__dirname, 'tmp');
|
|
12
|
+
const SELENIUM_DIRECTORY = path.resolve(TMP_DIRECTORY, 'selenium');
|
|
13
|
+
const ATOMS_DIRECTORY = path.resolve(__dirname, 'atoms');
|
|
14
|
+
const ATOMS_BUILD_DIRECTORY = path.resolve(__dirname, 'atoms_build_dir');
|
|
15
|
+
const LAST_UPDATE_FILE = path.resolve(ATOMS_DIRECTORY, 'lastupdate');
|
|
16
|
+
|
|
17
|
+
const TEMP_BUILD_DIRECTORY_NAME = 'appium-atoms-driver';
|
|
18
|
+
|
|
19
|
+
const ATOMS_BUILD_TARGET = 'build_atoms';
|
|
20
|
+
|
|
21
|
+
|
|
22
|
+
async function copyFolderRecursive(src, dest) {
|
|
23
|
+
const entries = await fs.promises.readdir(src, { withFileTypes: true });
|
|
24
|
+
try {
|
|
25
|
+
await fs.promises.access(dest, fs.constants.R_OK);
|
|
26
|
+
} catch (err) {
|
|
27
|
+
await fs.promises.mkdir(dest, { recursive: true });
|
|
28
|
+
}
|
|
29
|
+
for (const entry of entries) {
|
|
30
|
+
const srcPath = path.join(src, entry.name);
|
|
31
|
+
const destPath = path.join(dest, entry.name);
|
|
32
|
+
if (entry.isDirectory()) {
|
|
33
|
+
await copyFolderRecursive(srcPath, destPath);
|
|
34
|
+
} else if (entry.isFile()) {
|
|
35
|
+
await fs.promises.copyFile(srcPath, destPath);
|
|
36
|
+
} else {
|
|
37
|
+
log(`Skip copying ${srcPath}`);
|
|
38
|
+
}
|
|
39
|
+
}
|
|
40
|
+
}
|
|
41
|
+
|
|
42
|
+
async function rmDir (dir) {
|
|
43
|
+
try {
|
|
44
|
+
await fs.promises.access(dir, fs.constants.R_OK);
|
|
45
|
+
} catch (e) {
|
|
46
|
+
return;
|
|
47
|
+
}
|
|
48
|
+
|
|
49
|
+
const files = await fs.promises.readdir(dir);
|
|
50
|
+
for (const file of files) {
|
|
51
|
+
const fullPath = path.join(dir, file);
|
|
52
|
+
const isDirectory = (await fs.promises.stat(fullPath)).isDirectory();
|
|
53
|
+
if (['.', '..'].includes(file)) {
|
|
54
|
+
// pass these files
|
|
55
|
+
} else if (isDirectory) {
|
|
56
|
+
await rmDir(fullPath);
|
|
57
|
+
} else {
|
|
58
|
+
await fs.promises.unlink(fullPath);
|
|
59
|
+
}
|
|
60
|
+
}
|
|
61
|
+
await fs.promises.rmdir(dir);
|
|
62
|
+
}
|
|
63
|
+
|
|
64
|
+
async function seleniumMkdir () {
|
|
65
|
+
log(`Creating '${TMP_DIRECTORY}'`);
|
|
66
|
+
await fs.promises.mkdir(TMP_DIRECTORY, { recursive: true });
|
|
67
|
+
}
|
|
68
|
+
|
|
69
|
+
async function seleniumClean () {
|
|
70
|
+
log(`Cleaning '${SELENIUM_DIRECTORY}'`);
|
|
71
|
+
await rmDir(SELENIUM_DIRECTORY);
|
|
72
|
+
}
|
|
73
|
+
|
|
74
|
+
export async function seleniumClone () {
|
|
75
|
+
await seleniumMkdir();
|
|
76
|
+
await seleniumClean();
|
|
77
|
+
log(`Cloning branch '${SELENIUM_BRANCH}' from '${SELENIUM_GITHUB}'`);
|
|
78
|
+
await exec('git', [
|
|
79
|
+
'clone',
|
|
80
|
+
`--branch=${SELENIUM_BRANCH}`,
|
|
81
|
+
`--depth=1`,
|
|
82
|
+
SELENIUM_GITHUB,
|
|
83
|
+
SELENIUM_DIRECTORY,
|
|
84
|
+
]);
|
|
85
|
+
}
|
|
86
|
+
|
|
87
|
+
async function atomsCleanDir () {
|
|
88
|
+
log(`Cleaning '${ATOMS_DIRECTORY}'`);
|
|
89
|
+
await rmDir(ATOMS_DIRECTORY);
|
|
90
|
+
}
|
|
91
|
+
|
|
92
|
+
async function atomsClean () {
|
|
93
|
+
log('Building atoms');
|
|
94
|
+
await exec('./go', ['clean'], {cwd: SELENIUM_DIRECTORY});
|
|
95
|
+
}
|
|
96
|
+
|
|
97
|
+
async function atomsMkdir () {
|
|
98
|
+
log(`Creating '${ATOMS_DIRECTORY}'`);
|
|
99
|
+
await fs.promises.mkdir(ATOMS_DIRECTORY, { recursive: true });
|
|
100
|
+
}
|
|
101
|
+
|
|
102
|
+
async function atomsInject () {
|
|
103
|
+
log('Injecting build file into Selenium build');
|
|
104
|
+
await copyFolderRecursive(
|
|
105
|
+
ATOMS_BUILD_DIRECTORY, path.join(SELENIUM_DIRECTORY, 'javascript', TEMP_BUILD_DIRECTORY_NAME)
|
|
106
|
+
);
|
|
107
|
+
};
|
|
108
|
+
|
|
109
|
+
async function atomsBuildFragments () {
|
|
110
|
+
const proc = new SubProcess('./go', [`//javascript/${TEMP_BUILD_DIRECTORY_NAME}:${ATOMS_BUILD_TARGET}`], {
|
|
111
|
+
cwd: SELENIUM_DIRECTORY,
|
|
112
|
+
});
|
|
113
|
+
proc.on('lines-stdout', function linesStdout (lines) {
|
|
114
|
+
for (const line of lines) {
|
|
115
|
+
// clean up the output, which has long lines
|
|
116
|
+
// each 'fragment' of an atom produces two line of output
|
|
117
|
+
// Generating export file for webdriver.atoms.inject.action.clear at build/javascript/webdriver/atoms/fragments/inject/clear_exports.js
|
|
118
|
+
// Compiling //javascript/webdriver/atoms/fragments/inject:clear as build/javascript/webdriver/atoms/fragments/inject/clear.js
|
|
119
|
+
// so split each at either 'at' or 'as'
|
|
120
|
+
let buffer = [];
|
|
121
|
+
for (const word of line.split(' ')) {
|
|
122
|
+
if (['at', 'as'].includes(word)) {
|
|
123
|
+
// output the buffer
|
|
124
|
+
log(buffer.join(' '));
|
|
125
|
+
// clear the buffer, and make the next line indented
|
|
126
|
+
buffer = [` `];
|
|
127
|
+
}
|
|
128
|
+
// add the word to the buffer
|
|
129
|
+
buffer.push(word);
|
|
130
|
+
}
|
|
131
|
+
log(buffer.join(' '));
|
|
132
|
+
}
|
|
133
|
+
});
|
|
134
|
+
proc.on('lines-stderr', function linesStderr (lines) {
|
|
135
|
+
for (const line of lines) {
|
|
136
|
+
log.error(line);
|
|
137
|
+
}
|
|
138
|
+
});
|
|
139
|
+
await new B((resolve, reject) => {
|
|
140
|
+
proc.on('exit', function exit (code, signal) {
|
|
141
|
+
log(`Finished with code '${code}' and signal '${signal}'`);
|
|
142
|
+
if (code === 0) {
|
|
143
|
+
return resolve(code);
|
|
144
|
+
} else {
|
|
145
|
+
return reject(code);
|
|
146
|
+
}
|
|
147
|
+
});
|
|
148
|
+
proc.start();
|
|
149
|
+
});
|
|
150
|
+
}
|
|
151
|
+
|
|
152
|
+
async function atomsCopy () {
|
|
153
|
+
const doesPathMatch = (p) => {
|
|
154
|
+
const dirname = path.dirname(p);
|
|
155
|
+
if (![
|
|
156
|
+
'build/javascript/atoms/fragments',
|
|
157
|
+
'build/javascript/webdriver/atoms/fragments/inject',
|
|
158
|
+
'build/javascript/appium-atoms-driver'
|
|
159
|
+
].some((x) => dirname.endsWith(x))) {
|
|
160
|
+
return false;
|
|
161
|
+
}
|
|
162
|
+
const filename = path.basename(p);
|
|
163
|
+
if (['_exports.js', '_ie.js', '_build_atoms.js', 'deps.js'].some((x) => filename.endsWith(x))) {
|
|
164
|
+
return false;
|
|
165
|
+
}
|
|
166
|
+
return true;
|
|
167
|
+
};
|
|
168
|
+
|
|
169
|
+
const filesToCopy = (await glob('**/*.js', {
|
|
170
|
+
absolute: true,
|
|
171
|
+
strict: false,
|
|
172
|
+
cwd: SELENIUM_DIRECTORY,
|
|
173
|
+
})).filter(doesPathMatch);
|
|
174
|
+
if (filesToCopy.length) {
|
|
175
|
+
await B.all(filesToCopy.map((p) => fs.promises.copyFile(
|
|
176
|
+
p, path.join(ATOMS_DIRECTORY, path.basename(p))
|
|
177
|
+
)));
|
|
178
|
+
}
|
|
179
|
+
}
|
|
180
|
+
|
|
181
|
+
async function atomsTimestamp () {
|
|
182
|
+
const {stdout} = await exec('git', ['log', '-n', '1', '--decorate=full'], {cwd: SELENIUM_DIRECTORY});
|
|
183
|
+
await fs.promises.writeFile(LAST_UPDATE_FILE, Buffer.from(`${new Date()}\n\n${stdout}`));
|
|
184
|
+
}
|
|
185
|
+
|
|
186
|
+
export async function importAtoms() {
|
|
187
|
+
await atomsCleanDir();
|
|
188
|
+
await atomsClean();
|
|
189
|
+
await atomsMkdir();
|
|
190
|
+
await atomsInject();
|
|
191
|
+
await atomsBuildFragments();
|
|
192
|
+
await atomsCopy();
|
|
193
|
+
await atomsTimestamp();
|
|
194
|
+
}
|