Socket
Socket
Sign inDemoInstall

@glimmer/syntax

Package Overview
Dependencies
Maintainers
12
Versions
289
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

@glimmer/syntax - npm Package Compare versions

Comparing version 0.83.1 to 0.84.0

4

dist/commonjs/es2017/lib/v1/public-builders.js

@@ -156,3 +156,3 @@ "use strict";

function buildElement(tag, options) {
function buildElement(tag, options = {}) {
let {

@@ -485,2 +485,2 @@ attrs,

}
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3BhY2thZ2VzL0BnbGltbWVyL3N5bnRheC9saWIvdjEvcHVibGljLWJ1aWxkZXJzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7Ozs7QUFFQTs7QUFFQTs7QUFDQTs7QUFDQTs7QUFFQTs7QUFFQSxJQUFBLE9BQUE7O0FBRUEsU0FBQSxNQUFBLEdBQWU7QUFDYixNQUFJLENBQUosT0FBQSxFQUFjO0FBQ1osSUFBQSxPQUFPLEdBQUcsSUFBQSxlQUFBLENBQUEsRUFBQSxFQUFWLGFBQVUsQ0FBVjtBQUNEOztBQUVELFNBQUEsT0FBQTtBQUNEOztBQVNELFNBQUEsYUFBQSxDQUFBLElBQUEsRUFBQSxNQUFBLEVBQUEsSUFBQSxFQUFBLEdBQUEsRUFBQSxHQUFBLEVBQUEsS0FBQSxFQU0wQjtBQUV4QixNQUFJLE9BQUEsSUFBQSxLQUFKLFFBQUEsRUFBOEI7QUFDNUIsSUFBQSxJQUFJLEdBQUcsU0FBUyxDQUFoQixJQUFnQixDQUFoQjtBQUNEOztBQUVELFNBQU87QUFDTCxJQUFBLElBQUksRUFEQyxtQkFBQTtBQUFBLElBQUEsSUFBQTtBQUdMLElBQUEsTUFBTSxFQUFFLE1BQU0sSUFIVCxFQUFBO0FBSUwsSUFBQSxJQUFJLEVBQUUsSUFBSSxJQUFJLFNBQVMsQ0FKbEIsRUFJa0IsQ0FKbEI7QUFLTCxJQUFBLE9BQU8sRUFBRSxDQUxKLEdBQUE7QUFNTCxJQUFBLFFBQVEsRUFBRSxDQUFDLENBTk4sR0FBQTtBQU9MLElBQUEsR0FBRyxFQUFFLFFBQVEsQ0FBQyxHQUFHLElBUFosSUFPUSxDQVBSO0FBUUwsSUFBQSxLQUFLLEVBQUUsS0FBSyxJQUFJO0FBQUUsTUFBQSxJQUFJLEVBQU4sS0FBQTtBQUFlLE1BQUEsS0FBSyxFQUFFO0FBQXRCO0FBUlgsR0FBUDtBQVVEOztBQUVELFNBQUEsVUFBQSxDQUFBLElBQUEsRUFBQSxNQUFBLEVBQUEsSUFBQSxFQUFBLGFBQUEsRUFBQSxVQUFBLEVBQUEsR0FBQSxFQUFBLFNBQUEs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QU8sQ0FqQ0YsZUFpQ0UsQ0FqQ0Y7O0FBa0NiLEVBQUEsU0FBUyxHQUFBO0FBQ1AsV0FBTyxZQUFZLENBQUEsa0JBQUEsRUFBbkIsU0FBbUIsQ0FBbkI7QUFuQ1csR0FBQTs7QUFxQ2IsRUFBQSxJQUFJLEdBQUE7QUFDRixXQUFPLFlBQVksQ0FBQSxhQUFBLEVBQW5CLElBQW1CLENBQW5CO0FBQ0Q7O0FBdkNZLEM7OztBQTRDZixTQUFBLE9BQUEsQ0FBQSxJQUFBLEVBQXlEO0FBQ3ZELFNBQU8sVUFBQSxLQUFBLEVBQUEsR0FBQSxFQUFpRDtBQUN0RCxXQUFPLFlBQVksQ0FBQSxJQUFBLEVBQUEsS0FBQSxFQUFuQixHQUFtQixDQUFuQjtBQURGLEdBQUE7QUFHRCIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IERpY3QsIE9wdGlvbiB9IGZyb20gJ0BnbGltbWVyL2ludGVyZmFjZXMnO1xuaW1wb3J0IHsgTE9DQUxfREVCVUcgfSBmcm9tICdAZ2xpbW1lci9sb2NhbC1kZWJ1Zy1mbGFncyc7XG5pbXBvcnQgeyBhc3NlcnQsIGFzc2lnbiwgZGVwcmVjYXRlLCBpc1ByZXNlbnQgfSBmcm9tICdAZ2xpbW1lci91dGlsJztcblxuaW1wb3J0IHsgU291cmNlTG9jYXRpb24sIFNvdXJjZVBvc2l0aW9uLCBTWU5USEVUSUNfTE9DQVRJT04gfSBmcm9tICcuLi9zb3VyY2UvbG9jYXRpb24nO1xuaW1wb3J0IHsgU291cmNlIH0gZnJvbSAnLi4vc291cmNlL3NvdXJjZSc7XG5pbXBvcnQgeyBTb3VyY2VTcGFuIH0gZnJvbSAnLi4vc291cmNlL3NwYW4nO1xuaW1wb3J0ICogYXMgQVNUdjEgZnJvbSAnLi9hcGknO1xuaW1wb3J0IHsgUGF0aEV4cHJlc3Npb25JbXBsVjEgfSBmcm9tICcuL2xlZ2FjeS1pbnRlcm9wJztcblxubGV0IF9TT1VSQ0U6IFNvdXJjZSB8IHVuZGVmaW5lZDtcblxuZnVuY3Rpb24gU09VUkNFKCk6IFNvdXJjZSB7XG4gIGlmICghX1NPVVJDRSkge1xuICAgIF9TT1VSQ0UgPSBuZXcgU291cmNlKCcnLCAnKHN5bnRoZXRpYyknKTtcbiAgfVxuXG4gIHJldHVybiBfU09VUkNFO1xufVxuXG4vLyBjb25zdCBTT1VSQ0UgPSBuZXcgU291cmNlKCcnLCAnKHRlc3RzKScpO1xuXG4vLyBTdGF0ZW1lbnRzXG5cbmV4cG9ydCB0eXBlIEJ1aWxkZXJIZWFkID0gc3RyaW5nIHwgQVNUdjEuRXhwcmVzc2lvbjtcbmV4cG9ydCB0eXBlIFRhZ0Rlc2NyaXB0b3IgPSBzdHJpbmcgfCB7IG5hbWU6IHN0cmluZzsgc2VsZkNsb3Npbmc6IGJvb2xlYW4gfTtcblxuZnVuY3Rpb24gYnVpbGRNdXN0YWNoZShcbiAgcGF0aDogQnVpbGRlckhlYWQgfCBBU1R2MS5MaXRlcmFsLFxuICBwYXJhbXM/OiBBU1R2MS5FeHByZXNzaW9uW10sXG4gIGhhc2g/OiBBU1R2MS5IYXNoLFxuICByYXc/OiBib29sZWFuLFxuICBsb2M/OiBTb3VyY2VMb2NhdGlvbixcbiAgc3RyaXA/OiBBU1R2MS5TdHJpcEZsYWdzXG4pOiBBU1R2MS5NdXN0YWNoZVN0YXRlbWVudCB7XG4gIGlmICh0eXBlb2YgcGF0aCA9PT0gJ3N0cmluZycpIHtcbiAgICBwYXRoID0gYnVpbGRQYXRoKHBhdGgpO1xuICB9XG5cbiAgcmV0dXJuIHtcbiAgICB0eXBlOiAnTXVzdGFjaGVTdGF0ZW1lbnQnLFxuICAgIHBhdGgsXG4gICAgcGFyYW1zOiBwYXJhbXMgfHwgW10sXG4gICAgaGFzaDogaGFzaCB8fCBidWlsZEhhc2goW10pLFxuICAgIGVzY2FwZWQ6ICFyYXcsXG4gICAgdHJ1c3Rpbmc6ICEhcmF3LFxuICAgIGxvYzogYnVpbGRMb2MobG9jIHx8IG51bGwpLFxuICAgIHN0cmlwOiBzdHJpcCB8fCB7IG9wZW46IGZhbHNlLCBjbG9zZTogZmFsc2UgfSxcbiAgfTtcbn1cblxuZnVuY3Rpb24gYnVpbGRCbG9jayhcbiAgcGF0aDogQnVpbGRlckhlYWQsXG4gIHBhcmFtczogT3B0aW9uPEFTVHYxLkV4cHJlc3Npb25bXT4sXG4gIGhhc2g6IE9wdGlvbjxBU1R2MS5IYXNoPixcbiAgX2RlZmF1bHRCbG9jazogQVNUdjEuUG9zc2libHlEZXByZWNhdGVkQmxvY2ssXG4gIF9lbHNlQmxvY2s/OiBPcHRpb248QVNUdjEuUG9zc2libHlEZXByZWNhdGVkQmxvY2s+LFxuICBsb2M/OiBTb3VyY2VMb2NhdGlvbixcbiAgb3BlblN0cmlwPzogQVNUdjEuU3RyaXBGbGFncyxcbiAgaW52ZXJzZVN0cmlwPzogQVNUdjEuU3RyaXBGbGFncyxcbiAgY2xvc2VTdHJpcD86IEFTVHYxLlN0cmlwRmxhZ3Ncbik6IEFTVHYxLkJsb2NrU3RhdGVtZW50IHtcbiAgbGV0IGRlZmF1bHRCbG9jazogQVNUdjEuQmxvY2s7XG4gIGxldCBlbHNlQmxvY2s6IE9wdGlvbjxBU1R2MS5CbG9jaz4gfCB1bmRlZmluZWQ7XG5cbiAgaWYgKF9kZWZhdWx0QmxvY2sudHlwZSA9PT0gJ1RlbXBsYXRlJykge1xuICAgIGlmIChMT0NBTF9ERUJVRykge1xuICAgICAgZGVwcmVjYXRlKGBiLnByb2dyYW0gaXMgZGVwcmVjYXRlZC4gVXNlIGIuYmxvY2tJdHNlbGYgaW5zdGVhZC5gKTtcbiAgICB9XG5cbiAgICBkZWZhdWx0QmxvY2sgPSAoYXNzaWduKHt9LCBfZGVmYXVsdEJsb2NrLCB7IHR5cGU6ICdCbG9jaycgfSkgYXMgdW5rbm93bikgYXMgQVNUdjEuQmxvY2s7XG4gIH0gZWxzZSB7XG4gICAgZGVmYXVsdEJsb2NrID0gX2RlZmF1bHRCbG9jaztcbiAgfVxuXG4gIGlmIChfZWxzZUJsb2NrICE9PSB1bmRlZmluZWQgJiYgX2Vsc2VCbG9jayAhPT0gbnVsbCAmJiBfZWxzZUJsb2NrLnR5cGUgPT09ICdUZW1wbGF0ZScpIHtcbiAgICBpZiAoTE9DQUxfREVCVUcpIHtcbiAgICAgIGRlcHJlY2F0ZShgYi5wcm9ncmFtIGlzIGRlcHJlY2F0ZWQuIFVzZSBiLmJsb2NrSXRzZWxmIGluc3RlYWQuYCk7XG4gICAgfVxuXG4gICAgZWxzZUJsb2NrID0gKGFzc2lnbih7fSwgX2Vsc2VCbG9jaywgeyB0eXBlOiAnQmxvY2snIH0pIGFzIHVua25vd24pIGFzIEFTVHYxLkJsb2NrO1xuICB9IGVsc2Uge1xuICAgIGVsc2VCbG9jayA9IF9lbHNlQmxvY2s7XG4gIH1cblxuICByZXR1cm4ge1xuICAgIHR5cGU6ICdCbG9ja1N0YXRlbWVudCcsXG4gICAgcGF0aDogYnVpbGRQYXRoKHBhdGgpLFxuICAgIHBhcmFtczogcGFyYW1zIHx8IFtdLFxuICAgIGhhc2g6IGhhc2ggfHwgYnVpbGRIYXNoKFtdKSxcbiAgICBwcm9ncmFtOiBkZWZhdWx0QmxvY2sgfHwgbnVsbCxcbiAgICBpbnZlcnNlOiBlbHNlQmxvY2sgfHwgbnVsbCxcbiAgICBsb2M6IGJ1aWxkTG9jKGxvYyB8fCBudWxsKSxcbiAgICBvcGVuU3RyaXA6IG9wZW5TdHJpcCB8fCB7IG9wZW46IGZhbHNlLCBjbG9zZTogZmFsc2UgfSxcbiAgICBpbnZlcnNlU3RyaXA6IGludmVyc2VTdHJpcCB8fCB7IG9wZW46IGZhbHNlLCBjbG9zZTogZmFsc2UgfSxcbiAgICBjbG9zZVN0cmlwOiBjbG9zZVN0cmlwIHx8IHsgb3BlbjogZmFsc2UsIGNsb3NlOiBmYWxzZSB9LFxuICB9O1xufVxuXG5mdW5jdGlvbiBidWlsZEVsZW1lbnRNb2RpZmllcihcbiAgcGF0aDogQnVpbGRlckhlYWQgfCBBU1R2MS5FeHByZXNzaW9uLFxuICBwYXJhbXM/OiBBU1R2MS5FeHByZXNzaW9uW10sXG4gIGhhc2g/OiBBU1R2MS5IYXNoLFxuICBsb2M/OiBPcHRpb248U291cmNlTG9jYXRpb24+XG4pOiBBU1R2MS5FbGVtZW50TW9kaWZpZXJTdGF0ZW1lbnQge1xuICByZXR1cm4ge1xuICAgIHR5cGU6ICdFbGVtZW50TW9kaWZpZXJTdGF0ZW1lbnQnLFxuICAgIHBhdGg6IGJ1aWxkUGF0aChwYXRoKSxcbiAgICBwYXJhbXM6IHBhcmFtcyB8fCBbXSxcbiAgICBoYXNoOiBoYXNoIHx8IGJ1aWxkSGFzaChbXSksXG4gICAgbG9jOiBidWlsZExvYyhsb2MgfHwgbnVsbCksXG4gIH07XG59XG5cbmZ1bmN0aW9uIGJ1aWxkUGFydGlhbChcbiAgbmFtZTogQVNUdjEuUGF0aEV4cHJlc3Npb24sXG4gIHBhcmFtcz86IEFTVHYxLkV4cHJlc3Npb25bXSxcbiAgaGFzaD86IEFTVHYxLkhhc2gsXG4gIGluZGVudD86IHN0cmluZyxcbiAgbG9jPzogU291cmNlTG9jYXRpb25cbik6IEFTVHYxLlBhcnRpYWxTdGF0ZW1lbnQge1xuICByZXR1cm4ge1xuICAgIHR5cGU6ICdQYXJ0aWFsU3RhdGVtZW50JyxcbiAgICBuYW1lOiBuYW1lLFxuICAgIHBhcmFtczogcGFyYW1zIHx8IFtdLFxuICAgIGhhc2g6IGhhc2ggfHwgYnVpbGRIYXNoKFtdKSxcbiAgICBpbmRlbnQ6IGluZGVudCB8fCAnJyxcbiAgICBzdHJpcDogeyBvcGVuOiBmYWxzZSwgY2xvc2U6IGZhbHNlIH0sXG4gICAgbG9jOiBidWlsZExvYyhsb2MgfHwgbnVsbCksXG4gIH07XG59XG5cbmZ1bmN0aW9uIGJ1aWxkQ29tbWVudCh2YWx1ZTogc3RyaW5nLCBsb2M/OiBTb3VyY2VMb2NhdGlvbik6IEFTVHYxLkNvbW1lbnRTdGF0ZW1lbnQge1xuICByZXR1cm4ge1xuICAgIHR5cGU6ICdDb21tZW50U3RhdGVtZW50JyxcbiAgICB2YWx1ZTogdmFsdWUsXG4gICAgbG9jOiBidWlsZExvYyhsb2MgfHwgbnVsbCksXG4gIH07XG59XG5cbmZ1bmN0aW9uIGJ1aWxkTXVzdGFjaGVDb21tZW50KHZhbHVlOiBzdHJpbmcsIGxvYz86IFNvdXJjZUxvY2F0aW9uKTogQVNUdjEuTXVzdGFjaGVDb21tZW50U3RhdGVtZW50IHtcbiAgcmV0dXJuIHtcbiAgICB0eXBlOiAnTXVzdGFjaGVDb21tZW50U3RhdGVtZW50JyxcbiAgICB2YWx1ZTogdmFsdWUsXG4gICAgbG9jOiBidWlsZExvYyhsb2MgfHwgbnVsbCksXG4gIH07XG59XG5cbmZ1bmN0aW9uIGJ1aWxkQ29uY2F0KFxuICBwYXJ0czogKEFTVHYxLlRleHROb2RlIHwgQVNUdjEuTXVzdGFjaGVTdGF0ZW1lbnQpW10sXG4gIGxvYz86IFNvdXJjZUxvY2F0aW9uXG4pOiBBU1R2MS5Db25jYXRTdGF0ZW1lbnQge1xuICBpZiAoIWlzUHJlc2VudChwYXJ0cykpIHtcbiAgICB0aHJvdyBuZXcgRXJyb3IoYGIuY29uY2F0IHJlcXVpcmVzIGF0IGxlYXN0IG9uZSBwYXJ0YCk7XG4gIH1cblxuICByZXR1cm4ge1xuICAgIHR5cGU6ICdDb25jYXRTdGF0ZW1lbnQnLFxuICAgIHBhcnRzOiBwYXJ0cyB8fCBbXSxcbiAgICBsb2M6IGJ1aWxkTG9jKGxvYyB8fCBudWxsKSxcbiAgfTtcbn1cblxuLy8gTm9kZXNcblxuZXhwb3J0IHR5cGUgRWxlbWVudFBhcnRzID1cbiAgfCBbJ2F0dHJzJywgLi4uQXR0clNleHBbXV1cbiAgfCBbJ21vZGlmaWVycycsIC4uLk1vZGlmaWVyU2V4cFtdXVxuICB8IFsnYm9keScsIC4uLkFTVHYxLlN0YXRlbWVudFtdXVxuICB8IFsnY29tbWVudHMnLCAuLi5FbGVtZW50Q29tbWVudFtdXVxuICB8IFsnYXMnLCAuLi5zdHJpbmdbXV1cbiAgfCBbJ2xvYycsIFNvdXJjZUxvY2F0aW9uXTtcblxuZXhwb3J0IHR5cGUgUGF0aFNleHAgPSBzdHJpbmcgfCBbJ3BhdGgnLCBzdHJpbmcsIExvY1NleHA/XTtcblxuZXhwb3J0IHR5cGUgTW9kaWZpZXJTZXhwID1cbiAgfCBzdHJpbmdcbiAgfCBbUGF0aFNleHAsIExvY1NleHA/XVxuICB8IFtQYXRoU2V4cCwgQVNUdjEuRXhwcmVzc2lvbltdLCBMb2NTZXhwP11cbiAgfCBbUGF0aFNleHAsIEFTVHYxLkV4cHJlc3Npb25bXSwgRGljdDxBU1R2MS5FeHByZXNzaW9uPiwgTG9jU2V4cD9dO1xuXG5leHBvcnQgdHlwZSBBdHRyU2V4cCA9IFtzdHJpbmcsIEFTVHYxLkF0dHJOb2RlWyd2YWx1ZSddIHwgc3RyaW5nLCBMb2NTZXhwP107XG5cbmV4cG9ydCB0eXBlIExvY1NleHAgPSBbJ2xvYycsIFNvdXJjZUxvY2F0aW9uXTtcblxuZXhwb3J0IHR5cGUgRWxlbWVudENvbW1lbnQgPSBBU1R2MS5NdXN0YWNoZUNvbW1lbnRTdGF0ZW1lbnQgfCBTb3VyY2VMb2NhdGlvbiB8IHN0cmluZztcblxuZXhwb3J0IHR5cGUgU2V4cFZhbHVlID1cbiAgfCBzdHJpbmdcbiAgfCBBU1R2MS5FeHByZXNzaW9uW11cbiAgfCBEaWN0PEFTVHYxLkV4cHJlc3Npb24+XG4gIHwgTG9jU2V4cFxuICB8IFBhdGhTZXhwXG4gIHwgdW5kZWZpbmVkO1xuXG5leHBvcnQgaW50ZXJmYWNlIEJ1aWxkRWxlbWVudE9wdGlvbnMge1xuICBhdHRycz86IEFTVHYxLkF0dHJOb2RlW107XG4gIG1vZGlmaWVycz86IEFTVHYxLkVsZW1lbnRNb2RpZmllclN0YXRlbWVudFtdO1xuICBjaGlsZHJlbj86IEFTVHYxLlN0YXRlbWVudFtdO1xuICBjb21tZW50cz86IEVsZW1lbnRDb21tZW50W107XG4gIGJsb2NrUGFyYW1zPzogc3RyaW5nW107XG4gIGxvYz86IFNvdXJjZVNwYW47XG59XG5cbmZ1bmN0aW9uIGJ1aWxkRWxlbWVudCh0YWc6IFRhZ0Rlc2NyaXB0b3IsIG9wdGlvbnM6IEJ1aWxkRWxlbWVudE9wdGlvbnMpOiBBU1R2MS5FbGVtZW50Tm9kZSB7XG4gIGxldCB7IGF0dHJzLCBibG9ja1BhcmFtcywgbW9kaWZpZXJzLCBjb21tZW50cywgY2hpbGRyZW4sIGxvYyB9ID0gb3B0aW9ucztcblxuICBsZXQgdGFnTmFtZTogc3RyaW5nO1xuXG4gIC8vIHRoaXMgaXMgdXNlZCBmb3IgYmFja3dhcmRzIGNvbXBhdCwgcHJpb3IgdG8gYHNlbGZDbG9zaW5nYCBiZWluZyBwYXJ0IG9mIHRoZSBFbGVtZW50Tm9kZSBBU1RcbiAgbGV0IHNlbGZDbG9zaW5nID0gZmFsc2U7XG4gIGlmICh0eXBlb2YgdGFnID09PSAnb2JqZWN0Jykge1xuICAgIHNlbGZDbG9zaW5nID0gdGFnLnNlbGZDbG9zaW5nO1xuICAgIHRhZ05hbWUgPSB0YWcubmFtZTtcbiAgfSBlbHNlIGlmICh0YWcuc2xpY2UoLTEpID09PSAnLycpIHtcbiAgICB0YWdOYW1lID0gdGFnLnNsaWNlKDAsIC0xKTtcbiAgICBzZWxmQ2xvc2luZyA9IHRydWU7XG4gIH0gZWxzZSB7XG4gICAgdGFnTmFtZSA9IHRhZztcbiAgfVxuXG4gIHJldHVybiB7XG4gICAgdHlwZTogJ0VsZW1lbnROb2RlJyxcbiAgICB0YWc6IHRhZ05hbWUsXG4gICAgc2VsZkNsb3Npbmc6IHNlbGZDbG9zaW5nLFxuICAgIGF0dHJpYnV0ZXM6IGF0dHJzIHx8IFtdLFxuICAgIGJsb2NrUGFyYW1zOiBibG9ja1BhcmFtcyB8fCBbXSxcbiAgICBtb2RpZmllcnM6IG1vZGlmaWVycyB8fCBbXSxcbiAgICBjb21tZW50czogKGNvbW1lbnRzIGFzIEFTVHYxLk11c3RhY2hlQ29tbWVudFN0YXRlbWVudFtdKSB8fCBbXSxcbiAgICBjaGlsZHJlbjogY2hpbGRyZW4gfHwgW10sXG4gICAgbG9jOiBidWlsZExvYyhsb2MgfHwgbnVsbCksXG4gIH07XG59XG5cbmZ1bmN0aW9uIGJ1aWxkQXR0cihcbiAgbmFtZTogc3RyaW5nLFxuICB2YWx1ZTogQVNUdjEuQXR0ck5vZGVbJ3ZhbHVlJ10sXG4gIGxvYz86IFNvdXJjZUxvY2F0aW9uXG4pOiBBU1R2MS5BdHRyTm9kZSB7XG4gIHJldHVybiB7XG4gICAgdHlwZTogJ0F0dHJOb2RlJyxcbiAgICBuYW1lOiBuYW1lLFxuICAgIHZhbHVlOiB2YWx1ZSxcbiAgICBsb2M6IGJ1aWxkTG9jKGxvYyB8fCBudWxsKSxcbiAgfTtcbn1cblxuZnVuY3Rpb24gYnVpbGRUZXh0KGNoYXJzPzogc3RyaW5nLCBsb2M/OiBTb3VyY2VMb2NhdGlvbik6IEFTVHYxLlRleHROb2RlIHtcbiAgcmV0dXJuIHtcbiAgICB0eXBlOiAnVGV4dE5vZGUnLFxuICAgIGNoYXJzOiBjaGFycyB8fCAnJyxcbiAgICBsb2M6IGJ1aWxkTG9jKGxvYyB8fCBudWxsKSxcbiAgfTtcbn1cblxuLy8gRXhwcmVzc2lvbnNcblxuZnVuY3Rpb24gYnVpbGRTZXhwcihcbiAgcGF0aDogQnVpbGRlckhlYWQsXG4gIHBhcmFtcz86IEFTVHYxLkV4cHJlc3Npb25bXSxcbiAgaGFzaD86IEFTVHYxLkhhc2gsXG4gIGxvYz86IFNvdXJjZUxvY2F0aW9uXG4pOiBBU1R2MS5TdWJFeHByZXNzaW9uIHtcbiAgcmV0dXJuIHtcbiAgICB0eXBlOiAnU3ViRXhwcmVzc2lvbicsXG4gICAgcGF0aDogYnVpbGRQYXRoKHBhdGgpLFxuICAgIHBhcmFtczogcGFyYW1zIHx8IFtdLFxuICAgIGhhc2g6IGhhc2ggfHwgYnVpbGRIYXNoKFtdKSxcbiAgICBsb2M6IGJ1aWxkTG9jKGxvYyB8fCBudWxsKSxcbiAgfTtcbn1cblxuZnVuY3Rpb24gaGVhZFRvU3RyaW5nKGhlYWQ6IEFTVHYxLlBhdGhIZWFkKTogeyBvcmlnaW5hbDogc3RyaW5nOyBwYXJ0czogc3RyaW5nW10gfSB7XG4gIHN3aXRjaCAoaGVhZC50eXBlKSB7XG4gICAgY2FzZSAnQXRIZWFkJzpcbiAgICAgIHJldHVybiB7IG9yaWdpbmFsOiBoZWFkLm5hbWUsIHBhcnRzOiBbaGVhZC5uYW1lXSB9O1xuICAgIGNhc2UgJ1RoaXNIZWFkJzpcbiAgICAgIHJldHVybiB7IG9yaWdpbmFsOiBgdGhpc2AsIHBhcnRzOiBbXSB9O1xuICAgIGNhc2UgJ1ZhckhlYWQnOlxuICAgICAgcmV0dXJuIHsgb3JpZ2luYWw6IGhlYWQubmFtZSwgcGFydHM6IFtoZWFkLm5hbWVdIH07XG4gIH1cbn1cblxuZnVuY3Rpb24gYnVpbGRIZWFkKFxuICBvcmlnaW5hbDogc3RyaW5nLFxuICBsb2M6IFNvdXJjZUxvY2F0aW9uXG4pOiB7IGhlYWQ6IEFTVHYxLlBhdGhIZWFkOyB0YWlsOiBzdHJpbmdbXSB9IHtcbiAgbGV0IFtoZWFkLCAuLi50YWlsXSA9IG9yaWdpbmFsLnNwbGl0KCcuJyk7XG4gIGxldCBoZWFkTm9kZTogQVNUdjEuUGF0aEhlYWQ7XG5cbiAgaWYgKGhlYWQgPT09ICd0aGlzJykge1xuICAgIGhlYWROb2RlID0ge1xuICAgICAgdHlwZTogJ1RoaXNIZWFkJyxcbiAgICAgIGxvYzogYnVpbGRMb2MobG9jIHx8IG51bGwpLFxuICAgIH07XG4gIH0gZWxzZSBpZiAoaGVhZFswXSA9PT0gJ0AnKSB7XG4gICAgaGVhZE5vZGUgPSB7XG4gICAgICB0eXBlOiAnQXRIZWFkJyxcbiAgICAgIG5hbWU6IGhlYWQsXG4gICAgICBsb2M6IGJ1aWxkTG9jKGxvYyB8fCBudWxsKSxcbiAgICB9O1xuICB9IGVsc2Uge1xuICAgIGhlYWROb2RlID0ge1xuICAgICAgdHlwZTogJ1ZhckhlYWQnLFxuICAgICAgbmFtZTogaGVhZCxcbiAgICAgIGxvYzogYnVpbGRMb2MobG9jIHx8IG51bGwpLFxuICAgIH07XG4gIH1cblxuICByZXR1cm4ge1xuICAgIGhlYWQ6IGhlYWROb2RlLFxuICAgIHRhaWwsXG4gIH07XG59XG5cbmZ1bmN0aW9uIGJ1aWxkVGhpcyhsb2M6IFNvdXJjZUxvY2F0aW9uKTogQVNUdjEuUGF0aEhlYWQge1xuICByZXR1cm4ge1xuICAgIHR5cGU6ICdUaGlzSGVhZCcsXG4gICAgbG9jOiBidWlsZExvYyhsb2MgfHwgbnVsbCksXG4gIH07XG59XG5cbmZ1bmN0aW9uIGJ1aWxkQXROYW1lKG5hbWU6IHN0cmluZywgbG9jOiBTb3VyY2VMb2NhdGlvbik6IEFTVHYxLlBhdGhIZWFkIHtcbiAgLy8gdGhlIGBAYCBzaG91bGQgYmUgaW5jbHVkZWQgc28gd2UgaGF2ZSBhIGNvbXBsZXRlIHNvdXJjZSByYW5nZVxuICBhc3NlcnQobmFtZVswXSA9PT0gJ0AnLCBgY2FsbCBidWlsZGVycy5hdCgpIHdpdGggYSBzdHJpbmcgdGhhdCBzdGFydHMgd2l0aCAnQCdgKTtcblxuICByZXR1cm4ge1xuICAgIHR5cGU6ICdBdEhlYWQnLFxuICAgIG5hbWUsXG4gICAgbG9jOiBidWlsZExvYyhsb2MgfHwgbnVsbCksXG4gIH07XG59XG5cbmZ1bmN0aW9uIGJ1aWxkVmFyKG5hbWU6IHN0cmluZywgbG9jOiBTb3VyY2VMb2NhdGlvbik6IEFTVHYxLlBhdGhIZWFkIHtcbiAgYXNzZXJ0KG5hbWUgIT09ICd0aGlzJywgYFlvdSBjYWxsZWQgYnVpbGRlcnMudmFyKCkgd2l0aCAndGhpcycuIENhbGwgYnVpbGRlcnMudGhpcyBpbnN0ZWFkYCk7XG4gIGFzc2VydChcbiAgICBuYW1lWzBdICE9PSAnQCcsXG4gICAgYFlvdSBjYWxsZWQgYnVpbGRlcnMudmFyKCkgd2l0aCAnJHtuYW1lfScuIENhbGwgYnVpbGRlcnMuYXQoJyR7bmFtZX0nKSBpbnN0ZWFkYFxuICApO1xuXG4gIHJldHVybiB7XG4gICAgdHlwZTogJ1ZhckhlYWQnLFxuICAgIG5hbWUsXG4gICAgbG9jOiBidWlsZExvYyhsb2MgfHwgbnVsbCksXG4gIH07XG59XG5cbmZ1bmN0aW9uIGJ1aWxkSGVhZEZyb21TdHJpbmcoaGVhZDogc3RyaW5nLCBsb2M6IFNvdXJjZUxvY2F0aW9uKTogQVNUdjEuUGF0aEhlYWQge1xuICBpZiAoaGVhZFswXSA9PT0gJ0AnKSB7XG4gICAgcmV0dXJuIGJ1aWxkQXROYW1lKGhlYWQsIGxvYyk7XG4gIH0gZWxzZSBpZiAoaGVhZCA9PT0gJ3RoaXMnKSB7XG4gICAgcmV0dXJuIGJ1aWxkVGhpcyhsb2MpO1xuICB9IGVsc2Uge1xuICAgIHJldHVybiBidWlsZFZhcihoZWFkLCBsb2MpO1xuICB9XG59XG5cbmZ1bmN0aW9uIGJ1aWxkTmFtZWRCbG9ja05hbWUobmFtZTogc3RyaW5nLCBsb2M/OiBTb3VyY2VMb2NhdGlvbik6IEFTVHYxLk5hbWVkQmxvY2tOYW1lIHtcbiAgcmV0dXJuIHtcbiAgICB0eXBlOiAnTmFtZWRCbG9ja05hbWUnLFxuICAgIG5hbWUsXG4gICAgbG9jOiBidWlsZExvYyhsb2MgfHwgbnVsbCksXG4gIH07XG59XG5cbmZ1bmN0aW9uIGJ1aWxkQ2xlYW5QYXRoKFxuICBoZWFkOiBBU1R2MS5QYXRoSGVhZCxcbiAgdGFpbDogc3RyaW5nW10sXG4gIGxvYzogU291cmNlTG9jYXRpb25cbik6IEFTVHYxLlBhdGhFeHByZXNzaW9uIHtcbiAgbGV0IHsgb3JpZ2luYWw6IG9yaWdpbmFsSGVhZCwgcGFydHM6IGhlYWRQYXJ0cyB9ID0gaGVhZFRvU3RyaW5nKGhlYWQpO1xuICBsZXQgcGFydHMgPSBbLi4uaGVhZFBhcnRzLCAuLi50YWlsXTtcbiAgbGV0IG9yaWdpbmFsID0gWy4uLm9yaWdpbmFsSGVhZCwgLi4ucGFydHNdLmpvaW4oJy4nKTtcblxuICByZXR1cm4gbmV3IFBhdGhFeHByZXNzaW9uSW1wbFYxKG9yaWdpbmFsLCBoZWFkLCB0YWlsLCBidWlsZExvYyhsb2MgfHwgbnVsbCkpO1xufVxuXG5mdW5jdGlvbiBidWlsZFBhdGgoXG4gIHBhdGg6IEFTVHYxLlBhdGhFeHByZXNzaW9uIHwgc3RyaW5nIHwgeyBoZWFkOiBzdHJpbmc7IHRhaWw6IHN0cmluZ1tdIH0sXG4gIGxvYz86IFNvdXJjZUxvY2F0aW9uXG4pOiBBU1R2MS5QYXRoRXhwcmVzc2lvbjtcbmZ1bmN0aW9uIGJ1aWxkUGF0aChwYXRoOiBBU1R2MS5FeHByZXNzaW9uLCBsb2M/OiBTb3VyY2VMb2NhdGlvbik6IEFTVHYxLkV4cHJlc3Npb247XG5mdW5jdGlvbiBidWlsZFBhdGgocGF0aDogQnVpbGRlckhlYWQgfCBBU1R2MS5FeHByZXNzaW9uLCBsb2M/OiBTb3VyY2VMb2NhdGlvbik6IEFTVHYxLkV4cHJlc3Npb247XG5mdW5jdGlvbiBidWlsZFBhdGgoXG4gIHBhdGg6IEJ1aWxkZXJIZWFkIHwgQVNUdjEuRXhwcmVzc2lvbiB8IHsgaGVhZDogc3RyaW5nOyB0YWlsOiBzdHJpbmdbXSB9LFxuICBsb2M/OiBTb3VyY2VMb2NhdGlvblxuKTogQVNUdjEuRXhwcmVzc2lvbiB7XG4gIGlmICh0eXBlb2YgcGF0aCAhPT0gJ3N0cmluZycpIHtcbiAgICBpZiAoJ3R5cGUnIGluIHBhdGgpIHtcbiAgICAgIHJldHVybiBwYXRoO1xuICAgIH0gZWxzZSB7XG4gICAgICBsZXQgeyBoZWFkLCB0YWlsIH0gPSBidWlsZEhlYWQocGF0aC5oZWFkLCBTb3VyY2VTcGFuLmJyb2tlbigpKTtcblxuICAgICAgYXNzZXJ0KFxuICAgICAgICB0YWlsLmxlbmd0aCA9PT0gMCxcbiAgICAgICAgYGJ1aWxkZXIucGF0aCh7IGhlYWQsIHRhaWwgfSkgc2hvdWxkIG5vdCBiZSBjYWxsZWQgd2l0aCBhIGhlYWQgd2l0aCBkb3RzIGluIGl0YFxuICAgICAgKTtcblxuICAgICAgbGV0IHsgb3JpZ2luYWw6IG9yaWdpbmFsSGVhZCB9ID0gaGVhZFRvU3RyaW5nKGhlYWQpO1xuXG4gICAgICByZXR1cm4gbmV3IFBhdGhFeHByZXNzaW9uSW1wbFYxKFxuICAgICAgICBbb3JpZ2luYWxIZWFkLCAuLi50YWlsXS5qb2luKCcuJyksXG4gICAgICAgIGhlYWQsXG4gICAgICAgIHRhaWwsXG4gICAgICAgIGJ1aWxkTG9jKGxvYyB8fCBudWxsKVxuICAgICAgKTtcbiAgICB9XG4gIH1cblxuICBsZXQgeyBoZWFkLCB0YWlsIH0gPSBidWlsZEhlYWQocGF0aCwgU291cmNlU3Bhbi5icm9rZW4oKSk7XG5cbiAgcmV0dXJuIG5ldyBQYXRoRXhwcmVzc2lvbkltcGxWMShwYXRoLCBoZWFkLCB0YWlsLCBidWlsZExvYyhsb2MgfHwgbnVsbCkpO1xufVxuXG5mdW5jdGlvbiBidWlsZExpdGVyYWw8VCBleHRlbmRzIEFTVHYxLkxpdGVyYWw+KFxuICB0eXBlOiBUWyd0eXBlJ10sXG4gIHZhbHVlOiBUWyd2YWx1ZSddLFxuICBsb2M/OiBTb3VyY2VMb2NhdGlvblxuKTogVCB7XG4gIHJldHVybiB7XG4gICAgdHlwZSxcbiAgICB2YWx1ZSxcbiAgICBvcmlnaW5hbDogdmFsdWUsXG4gICAgbG9jOiBidWlsZExvYyhsb2MgfHwgbnVsbCksXG4gIH0gYXMgVDtcbn1cblxuLy8gTWlzY2VsbGFuZW91c1xuXG5mdW5jdGlvbiBidWlsZEhhc2gocGFpcnM/OiBBU1R2MS5IYXNoUGFpcltdLCBsb2M/OiBTb3VyY2VMb2NhdGlvbik6IEFTVHYxLkhhc2gge1xuICByZXR1cm4ge1xuICAgIHR5cGU6ICdIYXNoJyxcbiAgICBwYWlyczogcGFpcnMgfHwgW10sXG4gICAgbG9jOiBidWlsZExvYyhsb2MgfHwgbnVsbCksXG4gIH07XG59XG5cbmZ1bmN0aW9uIGJ1aWxkUGFpcihrZXk6IHN0cmluZywgdmFsdWU6IEFTVHYxLkV4cHJlc3Npb24sIGxvYz86IFNvdXJjZUxvY2F0aW9uKTogQVNUdjEuSGFzaFBhaXIge1xuICByZXR1cm4ge1xuICAgIHR5cGU6ICdIYXNoUGFpcicsXG4gICAga2V5OiBrZXksXG4gICAgdmFsdWUsXG4gICAgbG9jOiBidWlsZExvYyhsb2MgfHwgbnVsbCksXG4gIH07XG59XG5cbmZ1bmN0aW9uIGJ1aWxkUHJvZ3JhbShcbiAgYm9keT86IEFTVHYxLlN0YXRlbWVudFtdLFxuICBibG9ja1BhcmFtcz86IHN0cmluZ1tdLFxuICBsb2M/OiBTb3VyY2VMb2NhdGlvblxuKTogQVNUdjEuVGVtcGxhdGUge1xuICByZXR1cm4ge1xuICAgIHR5cGU6ICdUZW1wbGF0ZScsXG4gICAgYm9keTogYm9keSB8fCBbXSxcbiAgICBibG9ja1BhcmFtczogYmxvY2tQYXJhbXMgfHwgW10sXG4gICAgbG9jOiBidWlsZExvYyhsb2MgfHwgbnVsbCksXG4gIH07XG59XG5cbmZ1bmN0aW9uIGJ1aWxkQmxvY2tJdHNlbGYoXG4gIGJvZHk/OiBBU1R2MS5TdGF0ZW1lbnRbXSxcbiAgYmxvY2tQYXJhbXM/OiBzdHJpbmdbXSxcbiAgY2hhaW5lZCA9IGZhbHNlLFxuICBsb2M/OiBTb3VyY2VMb2NhdGlvblxuKTogQVNUdjEuQmxvY2sge1xuICByZXR1cm4ge1xuICAgIHR5cGU6ICdCbG9jaycsXG4gICAgYm9keTogYm9keSB8fCBbXSxcbiAgICBibG9ja1BhcmFtczogYmxvY2tQYXJhbXMgfHwgW10sXG4gICAgY2hhaW5lZCxcbiAgICBsb2M6IGJ1aWxkTG9jKGxvYyB8fCBudWxsKSxcbiAgfTtcbn1cblxuZnVuY3Rpb24gYnVpbGRUZW1wbGF0ZShcbiAgYm9keT86IEFTVHYxLlN0YXRlbWVudFtdLFxuICBibG9ja1BhcmFtcz86IHN0cmluZ1tdLFxuICBsb2M/OiBTb3VyY2VMb2NhdGlvblxuKTogQVNUdjEuVGVtcGxhdGUge1xuICByZXR1cm4ge1xuICAgIHR5cGU6ICdUZW1wbGF0ZScsXG4gICAgYm9keTogYm9keSB8fCBbXSxcbiAgICBibG9ja1BhcmFtczogYmxvY2tQYXJhbXMgfHwgW10sXG4gICAgbG9jOiBidWlsZExvYyhsb2MgfHwgbnVsbCksXG4gIH07XG59XG5cbmZ1bmN0aW9uIGJ1aWxkUG9zaXRpb24obGluZTogbnVtYmVyLCBjb2x1bW46IG51bWJlcik6IFNvdXJjZVBvc2l0aW9uIHtcbiAgcmV0dXJuIHtcbiAgICBsaW5lLFxuICAgIGNvbHVtbixcbiAgfTtcbn1cblxuZnVuY3Rpb24gYnVpbGRMb2MobG9jOiBPcHRpb248U291cmNlTG9jYXRpb24+KTogU291cmNlU3BhbjtcbmZ1bmN0aW9uIGJ1aWxkTG9jKFxuICBzdGFydExpbmU6IG51bWJlcixcbiAgc3RhcnRDb2x1bW46IG51bWJlcixcbiAgZW5kTGluZT86IG51bWJlcixcbiAgZW5kQ29sdW1uPzogbnVtYmVyLFxuICBzb3VyY2U/OiBzdHJpbmdcbik6IFNvdXJjZVNwYW47XG5cbmZ1bmN0aW9uIGJ1aWxkTG9jKC4uLmFyZ3M6IGFueVtdKTogU291cmNlU3BhbiB7XG4gIGlmIChhcmdzLmxlbmd0aCA9PT0gMSkge1xuICAgIGxldCBsb2MgPSBhcmdzWzBdO1xuXG4gICAgaWYgKGxvYyAmJiB0eXBlb2YgbG9jID09PSAnb2JqZWN0Jykge1xuICAgICAgcmV0dXJuIFNvdXJjZVNwYW4uZm9ySGJzTG9jKFNPVVJDRSgpLCBsb2MpO1xuICAgIH0gZWxzZSB7XG4gICAgICByZXR1cm4gU291cmNlU3Bhbi5mb3JIYnNMb2MoU09VUkNFKCksIFNZTlRIRVRJQ19MT0NBVElPTik7XG4gICAgfVxuICB9IGVsc2Uge1xuICAgIGxldCBbc3RhcnRMaW5lLCBzdGFydENvbHVtbiwgZW5kTGluZSwgZW5kQ29sdW1uLCBfc291cmNlXSA9IGFyZ3M7XG4gICAgbGV0IHNvdXJjZSA9IF9zb3VyY2UgPyBuZXcgU291cmNlKCcnLCBfc291cmNlKSA6IFNPVVJDRSgpO1xuXG4gICAgcmV0dXJuIFNvdXJjZVNwYW4uZm9ySGJzTG9jKHNvdXJjZSwge1xuICAgICAgc3RhcnQ6IHtcbiAgICAgICAgbGluZTogc3RhcnRMaW5lLFxuICAgICAgICBjb2x1bW46IHN0YXJ0Q29sdW1uLFxuICAgICAgfSxcbiAgICAgIGVuZDoge1xuICAgICAgICBsaW5lOiBlbmRMaW5lLFxuICAgICAgICBjb2x1bW46IGVuZENvbHVtbixcbiAgICAgIH0sXG4gICAgfSk7XG4gIH1cbn1cblxuZXhwb3J0IGRlZmF1bHQge1xuICBtdXN0YWNoZTogYnVpbGRNdXN0YWNoZSxcbiAgYmxvY2s6IGJ1aWxkQmxvY2ssXG4gIHBhcnRpYWw6IGJ1aWxkUGFydGlhbCxcbiAgY29tbWVudDogYnVpbGRDb21tZW50LFxuICBtdXN0YWNoZUNvbW1lbnQ6IGJ1aWxkTXVzdGFjaGVDb21tZW50LFxuICBlbGVtZW50OiBidWlsZEVsZW1lbnQsXG4gIGVsZW1lbnRNb2RpZmllcjogYnVpbGRFbGVtZW50TW9kaWZpZXIsXG4gIGF0dHI6IGJ1aWxkQXR0cixcbiAgdGV4dDogYnVpbGRUZXh0LFxuICBzZXhwcjogYnVpbGRTZXhwcixcblxuICBjb25jYXQ6IGJ1aWxkQ29uY2F0LFxuICBoYXNoOiBidWlsZEhhc2gsXG4gIHBhaXI6IGJ1aWxkUGFpcixcbiAgbGl0ZXJhbDogYnVpbGRMaXRlcmFsLFxuICBwcm9ncmFtOiBidWlsZFByb2dyYW0sXG4gIGJsb2NrSXRzZWxmOiBidWlsZEJsb2NrSXRzZWxmLFxuICB0ZW1wbGF0ZTogYnVpbGRUZW1wbGF0ZSxcbiAgbG9jOiBidWlsZExvYyxcbiAgcG9zOiBidWlsZFBvc2l0aW9uLFxuXG4gIHBhdGg6IGJ1aWxkUGF0aCxcblxuICBmdWxsUGF0aDogYnVpbGRDbGVhblBhdGgsXG4gIGhlYWQ6IGJ1aWxkSGVhZEZyb21TdHJpbmcsXG4gIGF0OiBidWlsZEF0TmFtZSxcbiAgdmFyOiBidWlsZFZhcixcbiAgdGhpczogYnVpbGRUaGlzLFxuICBibG9ja05hbWU6IGJ1aWxkTmFtZWRCbG9ja05hbWUsXG5cbiAgc3RyaW5nOiBsaXRlcmFsKCdTdHJpbmdMaXRlcmFsJykgYXMgKHZhbHVlOiBzdHJpbmcpID0+IEFTVHYxLlN0cmluZ0xpdGVyYWwsXG4gIGJvb2xlYW46IGxpdGVyYWwoJ0Jvb2xlYW5MaXRlcmFsJykgYXMgKHZhbHVlOiBib29sZWFuKSA9PiBBU1R2MS5Cb29sZWFuTGl0ZXJhbCxcbiAgbnVtYmVyOiBsaXRlcmFsKCdOdW1iZXJMaXRlcmFsJykgYXMgKHZhbHVlOiBudW1iZXIpID0+IEFTVHYxLk51bWJlckxpdGVyYWwsXG4gIHVuZGVmaW5lZCgpOiBBU1R2MS5VbmRlZmluZWRMaXRlcmFsIHtcbiAgICByZXR1cm4gYnVpbGRMaXRlcmFsKCdVbmRlZmluZWRMaXRlcmFsJywgdW5kZWZpbmVkKTtcbiAgfSxcbiAgbnVsbCgpOiBBU1R2MS5OdWxsTGl0ZXJhbCB7XG4gICAgcmV0dXJuIGJ1aWxkTGl0ZXJhbCgnTnVsbExpdGVyYWwnLCBudWxsKTtcbiAgfSxcbn07XG5cbnR5cGUgQnVpbGRMaXRlcmFsPFQgZXh0ZW5kcyBBU1R2MS5MaXRlcmFsPiA9ICh2YWx1ZTogVFsndmFsdWUnXSkgPT4gVDtcblxuZnVuY3Rpb24gbGl0ZXJhbDxUIGV4dGVuZHMgQVNUdjEuTGl0ZXJhbD4odHlwZTogVFsndHlwZSddKTogQnVpbGRMaXRlcmFsPFQ+IHtcbiAgcmV0dXJuIGZ1bmN0aW9uICh2YWx1ZTogVFsndmFsdWUnXSwgbG9jPzogU291cmNlTG9jYXRpb24pOiBUIHtcbiAgICByZXR1cm4gYnVpbGRMaXRlcmFsKHR5cGUsIHZhbHVlLCBsb2MpO1xuICB9O1xufVxuIl0sInNvdXJjZVJvb3QiOiIifQ==
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3BhY2thZ2VzL0BnbGltbWVyL3N5bnRheC9saWIvdjEvcHVibGljLWJ1aWxkZXJzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7Ozs7QUFFQTs7QUFFQTs7QUFDQTs7QUFDQTs7QUFFQTs7QUFFQSxJQUFBLE9BQUE7O0FBRUEsU0FBQSxNQUFBLEdBQWU7QUFDYixNQUFJLENBQUosT0FBQSxFQUFjO0FBQ1osSUFBQSxPQUFPLEdBQUcsSUFBQSxlQUFBLENBQUEsRUFBQSxFQUFWLGFBQVUsQ0FBVjtBQUNEOztBQUVELFNBQUEsT0FBQTtBQUNEOztBQVNELFNBQUEsYUFBQSxDQUFBLElBQUEsRUFBQSxNQUFBLEVBQUEsSUFBQSxFQUFBLEdBQUEsRUFBQSxHQUFBLEVBQUEsS0FBQSxFQU0wQjtBQUV4QixNQUFJLE9BQUEsSUFBQSxLQUFKLFFBQUEsRUFBOEI7QUFDNUIsSUFBQSxJQUFJLEdBQUcsU0FBUyxDQUFoQixJQUFnQixDQUFoQjtBQUNEOztBQUVELFNBQU87QUFDTCxJQUFBLElBQUksRUFEQyxtQkFBQTtBQUFBLElBQUEsSUFBQTtBQUdMLElBQUEsTUFBTSxFQUFFLE1BQU0sSUFIVCxFQUFBO0FBSUwsSUFBQSxJQUFJLEVBQUUsSUFBSSxJQUFJLFNBQVMsQ0FKbEIsRUFJa0IsQ0FKbEI7QUFLTCxJQUFBLE9BQU8sRUFBRSxDQUxKLEdBQUE7QUFNTCxJQUFBLFFBQVEsRUFBRSxDQUFDLENBTk4sR0FBQTtBQU9MLElBQUEsR0FBRyxFQUFFLFFBQVEsQ0FBQyxHQUFHLElBUFosSUFPUSxDQVBSO0FBUUwsSUFBQSxLQUFLLEVBQUUsS0FBSyxJQUFJO0FBQUUsTUFBQSxJQUFJLEVBQU4sS0FBQTtBQUFlLE1BQUEsS0FBSyxFQUFFO0FBQXRCO0FBUlgsR0FBUDtBQVVEOztBQUVELFNBQUEsVUFBQSxDQUFBLElBQUEsRUFBQSxNQUFBLEVBQUEsSUFBQSxFQUFBLGFBQUEsRUFBQSxVQUFBLEVBQUEsR0FBQSxFQUFBLFNBQUEs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TUFBTSxFQUFFLE9BQU8sQ0FqQ0YsZUFpQ0UsQ0FqQ0Y7O0FBa0NiLEVBQUEsU0FBUyxHQUFBO0FBQ1AsV0FBTyxZQUFZLENBQUEsa0JBQUEsRUFBbkIsU0FBbUIsQ0FBbkI7QUFuQ1csR0FBQTs7QUFxQ2IsRUFBQSxJQUFJLEdBQUE7QUFDRixXQUFPLFlBQVksQ0FBQSxhQUFBLEVBQW5CLElBQW1CLENBQW5CO0FBQ0Q7O0FBdkNZLEM7OztBQTRDZixTQUFBLE9BQUEsQ0FBQSxJQUFBLEVBQXlEO0FBQ3ZELFNBQU8sVUFBQSxLQUFBLEVBQUEsR0FBQSxFQUFpRDtBQUN0RCxXQUFPLFlBQVksQ0FBQSxJQUFBLEVBQUEsS0FBQSxFQUFuQixHQUFtQixDQUFuQjtBQURGLEdBQUE7QUFHRCIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IERpY3QsIE9wdGlvbiB9IGZyb20gJ0BnbGltbWVyL2ludGVyZmFjZXMnO1xuaW1wb3J0IHsgTE9DQUxfREVCVUcgfSBmcm9tICdAZ2xpbW1lci9sb2NhbC1kZWJ1Zy1mbGFncyc7XG5pbXBvcnQgeyBhc3NlcnQsIGFzc2lnbiwgZGVwcmVjYXRlLCBpc1ByZXNlbnQgfSBmcm9tICdAZ2xpbW1lci91dGlsJztcblxuaW1wb3J0IHsgU291cmNlTG9jYXRpb24sIFNvdXJjZVBvc2l0aW9uLCBTWU5USEVUSUNfTE9DQVRJT04gfSBmcm9tICcuLi9zb3VyY2UvbG9jYXRpb24nO1xuaW1wb3J0IHsgU291cmNlIH0gZnJvbSAnLi4vc291cmNlL3NvdXJjZSc7XG5pbXBvcnQgeyBTb3VyY2VTcGFuIH0gZnJvbSAnLi4vc291cmNlL3NwYW4nO1xuaW1wb3J0ICogYXMgQVNUdjEgZnJvbSAnLi9hcGknO1xuaW1wb3J0IHsgUGF0aEV4cHJlc3Npb25JbXBsVjEgfSBmcm9tICcuL2xlZ2FjeS1pbnRlcm9wJztcblxubGV0IF9TT1VSQ0U6IFNvdXJjZSB8IHVuZGVmaW5lZDtcblxuZnVuY3Rpb24gU09VUkNFKCk6IFNvdXJjZSB7XG4gIGlmICghX1NPVVJDRSkge1xuICAgIF9TT1VSQ0UgPSBuZXcgU291cmNlKCcnLCAnKHN5bnRoZXRpYyknKTtcbiAgfVxuXG4gIHJldHVybiBfU09VUkNFO1xufVxuXG4vLyBjb25zdCBTT1VSQ0UgPSBuZXcgU291cmNlKCcnLCAnKHRlc3RzKScpO1xuXG4vLyBTdGF0ZW1lbnRzXG5cbmV4cG9ydCB0eXBlIEJ1aWxkZXJIZWFkID0gc3RyaW5nIHwgQVNUdjEuRXhwcmVzc2lvbjtcbmV4cG9ydCB0eXBlIFRhZ0Rlc2NyaXB0b3IgPSBzdHJpbmcgfCB7IG5hbWU6IHN0cmluZzsgc2VsZkNsb3Npbmc6IGJvb2xlYW4gfTtcblxuZnVuY3Rpb24gYnVpbGRNdXN0YWNoZShcbiAgcGF0aDogQnVpbGRlckhlYWQgfCBBU1R2MS5MaXRlcmFsLFxuICBwYXJhbXM/OiBBU1R2MS5FeHByZXNzaW9uW10sXG4gIGhhc2g/OiBBU1R2MS5IYXNoLFxuICByYXc/OiBib29sZWFuLFxuICBsb2M/OiBTb3VyY2VMb2NhdGlvbixcbiAgc3RyaXA/OiBBU1R2MS5TdHJpcEZsYWdzXG4pOiBBU1R2MS5NdXN0YWNoZVN0YXRlbWVudCB7XG4gIGlmICh0eXBlb2YgcGF0aCA9PT0gJ3N0cmluZycpIHtcbiAgICBwYXRoID0gYnVpbGRQYXRoKHBhdGgpO1xuICB9XG5cbiAgcmV0dXJuIHtcbiAgICB0eXBlOiAnTXVzdGFjaGVTdGF0ZW1lbnQnLFxuICAgIHBhdGgsXG4gICAgcGFyYW1zOiBwYXJhbXMgfHwgW10sXG4gICAgaGFzaDogaGFzaCB8fCBidWlsZEhhc2goW10pLFxuICAgIGVzY2FwZWQ6ICFyYXcsXG4gICAgdHJ1c3Rpbmc6ICEhcmF3LFxuICAgIGxvYzogYnVpbGRMb2MobG9jIHx8IG51bGwpLFxuICAgIHN0cmlwOiBzdHJpcCB8fCB7IG9wZW46IGZhbHNlLCBjbG9zZTogZmFsc2UgfSxcbiAgfTtcbn1cblxuZnVuY3Rpb24gYnVpbGRCbG9jayhcbiAgcGF0aDogQnVpbGRlckhlYWQsXG4gIHBhcmFtczogT3B0aW9uPEFTVHYxLkV4cHJlc3Npb25bXT4sXG4gIGhhc2g6IE9wdGlvbjxBU1R2MS5IYXNoPixcbiAgX2RlZmF1bHRCbG9jazogQVNUdjEuUG9zc2libHlEZXByZWNhdGVkQmxvY2ssXG4gIF9lbHNlQmxvY2s/OiBPcHRpb248QVNUdjEuUG9zc2libHlEZXByZWNhdGVkQmxvY2s+LFxuICBsb2M/OiBTb3VyY2VMb2NhdGlvbixcbiAgb3BlblN0cmlwPzogQVNUdjEuU3RyaXBGbGFncyxcbiAgaW52ZXJzZVN0cmlwPzogQVNUdjEuU3RyaXBGbGFncyxcbiAgY2xvc2VTdHJpcD86IEFTVHYxLlN0cmlwRmxhZ3Ncbik6IEFTVHYxLkJsb2NrU3RhdGVtZW50IHtcbiAgbGV0IGRlZmF1bHRCbG9jazogQVNUdjEuQmxvY2s7XG4gIGxldCBlbHNlQmxvY2s6IE9wdGlvbjxBU1R2MS5CbG9jaz4gfCB1bmRlZmluZWQ7XG5cbiAgaWYgKF9kZWZhdWx0QmxvY2sudHlwZSA9PT0gJ1RlbXBsYXRlJykge1xuICAgIGlmIChMT0NBTF9ERUJVRykge1xuICAgICAgZGVwcmVjYXRlKGBiLnByb2dyYW0gaXMgZGVwcmVjYXRlZC4gVXNlIGIuYmxvY2tJdHNlbGYgaW5zdGVhZC5gKTtcbiAgICB9XG5cbiAgICBkZWZhdWx0QmxvY2sgPSAoYXNzaWduKHt9LCBfZGVmYXVsdEJsb2NrLCB7IHR5cGU6ICdCbG9jaycgfSkgYXMgdW5rbm93bikgYXMgQVNUdjEuQmxvY2s7XG4gIH0gZWxzZSB7XG4gICAgZGVmYXVsdEJsb2NrID0gX2RlZmF1bHRCbG9jaztcbiAgfVxuXG4gIGlmIChfZWxzZUJsb2NrICE9PSB1bmRlZmluZWQgJiYgX2Vsc2VCbG9jayAhPT0gbnVsbCAmJiBfZWxzZUJsb2NrLnR5cGUgPT09ICdUZW1wbGF0ZScpIHtcbiAgICBpZiAoTE9DQUxfREVCVUcpIHtcbiAgICAgIGRlcHJlY2F0ZShgYi5wcm9ncmFtIGlzIGRlcHJlY2F0ZWQuIFVzZSBiLmJsb2NrSXRzZWxmIGluc3RlYWQuYCk7XG4gICAgfVxuXG4gICAgZWxzZUJsb2NrID0gKGFzc2lnbih7fSwgX2Vsc2VCbG9jaywgeyB0eXBlOiAnQmxvY2snIH0pIGFzIHVua25vd24pIGFzIEFTVHYxLkJsb2NrO1xuICB9IGVsc2Uge1xuICAgIGVsc2VCbG9jayA9IF9lbHNlQmxvY2s7XG4gIH1cblxuICByZXR1cm4ge1xuICAgIHR5cGU6ICdCbG9ja1N0YXRlbWVudCcsXG4gICAgcGF0aDogYnVpbGRQYXRoKHBhdGgpLFxuICAgIHBhcmFtczogcGFyYW1zIHx8IFtdLFxuICAgIGhhc2g6IGhhc2ggfHwgYnVpbGRIYXNoKFtdKSxcbiAgICBwcm9ncmFtOiBkZWZhdWx0QmxvY2sgfHwgbnVsbCxcbiAgICBpbnZlcnNlOiBlbHNlQmxvY2sgfHwgbnVsbCxcbiAgICBsb2M6IGJ1aWxkTG9jKGxvYyB8fCBudWxsKSxcbiAgICBvcGVuU3RyaXA6IG9wZW5TdHJpcCB8fCB7IG9wZW46IGZhbHNlLCBjbG9zZTogZmFsc2UgfSxcbiAgICBpbnZlcnNlU3RyaXA6IGludmVyc2VTdHJpcCB8fCB7IG9wZW46IGZhbHNlLCBjbG9zZTogZmFsc2UgfSxcbiAgICBjbG9zZVN0cmlwOiBjbG9zZVN0cmlwIHx8IHsgb3BlbjogZmFsc2UsIGNsb3NlOiBmYWxzZSB9LFxuICB9O1xufVxuXG5mdW5jdGlvbiBidWlsZEVsZW1lbnRNb2RpZmllcihcbiAgcGF0aDogQnVpbGRlckhlYWQgfCBBU1R2MS5FeHByZXNzaW9uLFxuICBwYXJhbXM/OiBBU1R2MS5FeHByZXNzaW9uW10sXG4gIGhhc2g/OiBBU1R2MS5IYXNoLFxuICBsb2M/OiBPcHRpb248U291cmNlTG9jYXRpb24+XG4pOiBBU1R2MS5FbGVtZW50TW9kaWZpZXJTdGF0ZW1lbnQge1xuICByZXR1cm4ge1xuICAgIHR5cGU6ICdFbGVtZW50TW9kaWZpZXJTdGF0ZW1lbnQnLFxuICAgIHBhdGg6IGJ1aWxkUGF0aChwYXRoKSxcbiAgICBwYXJhbXM6IHBhcmFtcyB8fCBbXSxcbiAgICBoYXNoOiBoYXNoIHx8IGJ1aWxkSGFzaChbXSksXG4gICAgbG9jOiBidWlsZExvYyhsb2MgfHwgbnVsbCksXG4gIH07XG59XG5cbmZ1bmN0aW9uIGJ1aWxkUGFydGlhbChcbiAgbmFtZTogQVNUdjEuUGF0aEV4cHJlc3Npb24sXG4gIHBhcmFtcz86IEFTVHYxLkV4cHJlc3Npb25bXSxcbiAgaGFzaD86IEFTVHYxLkhhc2gsXG4gIGluZGVudD86IHN0cmluZyxcbiAgbG9jPzogU291cmNlTG9jYXRpb25cbik6IEFTVHYxLlBhcnRpYWxTdGF0ZW1lbnQge1xuICByZXR1cm4ge1xuICAgIHR5cGU6ICdQYXJ0aWFsU3RhdGVtZW50JyxcbiAgICBuYW1lOiBuYW1lLFxuICAgIHBhcmFtczogcGFyYW1zIHx8IFtdLFxuICAgIGhhc2g6IGhhc2ggfHwgYnVpbGRIYXNoKFtdKSxcbiAgICBpbmRlbnQ6IGluZGVudCB8fCAnJyxcbiAgICBzdHJpcDogeyBvcGVuOiBmYWxzZSwgY2xvc2U6IGZhbHNlIH0sXG4gICAgbG9jOiBidWlsZExvYyhsb2MgfHwgbnVsbCksXG4gIH07XG59XG5cbmZ1bmN0aW9uIGJ1aWxkQ29tbWVudCh2YWx1ZTogc3RyaW5nLCBsb2M/OiBTb3VyY2VMb2NhdGlvbik6IEFTVHYxLkNvbW1lbnRTdGF0ZW1lbnQge1xuICByZXR1cm4ge1xuICAgIHR5cGU6ICdDb21tZW50U3RhdGVtZW50JyxcbiAgICB2YWx1ZTogdmFsdWUsXG4gICAgbG9jOiBidWlsZExvYyhsb2MgfHwgbnVsbCksXG4gIH07XG59XG5cbmZ1bmN0aW9uIGJ1aWxkTXVzdGFjaGVDb21tZW50KHZhbHVlOiBzdHJpbmcsIGxvYz86IFNvdXJjZUxvY2F0aW9uKTogQVNUdjEuTXVzdGFjaGVDb21tZW50U3RhdGVtZW50IHtcbiAgcmV0dXJuIHtcbiAgICB0eXBlOiAnTXVzdGFjaGVDb21tZW50U3RhdGVtZW50JyxcbiAgICB2YWx1ZTogdmFsdWUsXG4gICAgbG9jOiBidWlsZExvYyhsb2MgfHwgbnVsbCksXG4gIH07XG59XG5cbmZ1bmN0aW9uIGJ1aWxkQ29uY2F0KFxuICBwYXJ0czogKEFTVHYxLlRleHROb2RlIHwgQVNUdjEuTXVzdGFjaGVTdGF0ZW1lbnQpW10sXG4gIGxvYz86IFNvdXJjZUxvY2F0aW9uXG4pOiBBU1R2MS5Db25jYXRTdGF0ZW1lbnQge1xuICBpZiAoIWlzUHJlc2VudChwYXJ0cykpIHtcbiAgICB0aHJvdyBuZXcgRXJyb3IoYGIuY29uY2F0IHJlcXVpcmVzIGF0IGxlYXN0IG9uZSBwYXJ0YCk7XG4gIH1cblxuICByZXR1cm4ge1xuICAgIHR5cGU6ICdDb25jYXRTdGF0ZW1lbnQnLFxuICAgIHBhcnRzOiBwYXJ0cyB8fCBbXSxcbiAgICBsb2M6IGJ1aWxkTG9jKGxvYyB8fCBudWxsKSxcbiAgfTtcbn1cblxuLy8gTm9kZXNcblxuZXhwb3J0IHR5cGUgRWxlbWVudFBhcnRzID1cbiAgfCBbJ2F0dHJzJywgLi4uQXR0clNleHBbXV1cbiAgfCBbJ21vZGlmaWVycycsIC4uLk1vZGlmaWVyU2V4cFtdXVxuICB8IFsnYm9keScsIC4uLkFTVHYxLlN0YXRlbWVudFtdXVxuICB8IFsnY29tbWVudHMnLCAuLi5FbGVtZW50Q29tbWVudFtdXVxuICB8IFsnYXMnLCAuLi5zdHJpbmdbXV1cbiAgfCBbJ2xvYycsIFNvdXJjZUxvY2F0aW9uXTtcblxuZXhwb3J0IHR5cGUgUGF0aFNleHAgPSBzdHJpbmcgfCBbJ3BhdGgnLCBzdHJpbmcsIExvY1NleHA/XTtcblxuZXhwb3J0IHR5cGUgTW9kaWZpZXJTZXhwID1cbiAgfCBzdHJpbmdcbiAgfCBbUGF0aFNleHAsIExvY1NleHA/XVxuICB8IFtQYXRoU2V4cCwgQVNUdjEuRXhwcmVzc2lvbltdLCBMb2NTZXhwP11cbiAgfCBbUGF0aFNleHAsIEFTVHYxLkV4cHJlc3Npb25bXSwgRGljdDxBU1R2MS5FeHByZXNzaW9uPiwgTG9jU2V4cD9dO1xuXG5leHBvcnQgdHlwZSBBdHRyU2V4cCA9IFtzdHJpbmcsIEFTVHYxLkF0dHJOb2RlWyd2YWx1ZSddIHwgc3RyaW5nLCBMb2NTZXhwP107XG5cbmV4cG9ydCB0eXBlIExvY1NleHAgPSBbJ2xvYycsIFNvdXJjZUxvY2F0aW9uXTtcblxuZXhwb3J0IHR5cGUgRWxlbWVudENvbW1lbnQgPSBBU1R2MS5NdXN0YWNoZUNvbW1lbnRTdGF0ZW1lbnQgfCBTb3VyY2VMb2NhdGlvbiB8IHN0cmluZztcblxuZXhwb3J0IHR5cGUgU2V4cFZhbHVlID1cbiAgfCBzdHJpbmdcbiAgfCBBU1R2MS5FeHByZXNzaW9uW11cbiAgfCBEaWN0PEFTVHYxLkV4cHJlc3Npb24+XG4gIHwgTG9jU2V4cFxuICB8IFBhdGhTZXhwXG4gIHwgdW5kZWZpbmVkO1xuXG5leHBvcnQgaW50ZXJmYWNlIEJ1aWxkRWxlbWVudE9wdGlvbnMge1xuICBhdHRycz86IEFTVHYxLkF0dHJOb2RlW107XG4gIG1vZGlmaWVycz86IEFTVHYxLkVsZW1lbnRNb2RpZmllclN0YXRlbWVudFtdO1xuICBjaGlsZHJlbj86IEFTVHYxLlN0YXRlbWVudFtdO1xuICBjb21tZW50cz86IEVsZW1lbnRDb21tZW50W107XG4gIGJsb2NrUGFyYW1zPzogc3RyaW5nW107XG4gIGxvYz86IFNvdXJjZVNwYW47XG59XG5cbmZ1bmN0aW9uIGJ1aWxkRWxlbWVudCh0YWc6IFRhZ0Rlc2NyaXB0b3IsIG9wdGlvbnM6IEJ1aWxkRWxlbWVudE9wdGlvbnMgPSB7fSk6IEFTVHYxLkVsZW1lbnROb2RlIHtcbiAgbGV0IHsgYXR0cnMsIGJsb2NrUGFyYW1zLCBtb2RpZmllcnMsIGNvbW1lbnRzLCBjaGlsZHJlbiwgbG9jIH0gPSBvcHRpb25zO1xuXG4gIGxldCB0YWdOYW1lOiBzdHJpbmc7XG5cbiAgLy8gdGhpcyBpcyB1c2VkIGZvciBiYWNrd2FyZHMgY29tcGF0LCBwcmlvciB0byBgc2VsZkNsb3NpbmdgIGJlaW5nIHBhcnQgb2YgdGhlIEVsZW1lbnROb2RlIEFTVFxuICBsZXQgc2VsZkNsb3NpbmcgPSBmYWxzZTtcbiAgaWYgKHR5cGVvZiB0YWcgPT09ICdvYmplY3QnKSB7XG4gICAgc2VsZkNsb3NpbmcgPSB0YWcuc2VsZkNsb3Npbmc7XG4gICAgdGFnTmFtZSA9IHRhZy5uYW1lO1xuICB9IGVsc2UgaWYgKHRhZy5zbGljZSgtMSkgPT09ICcvJykge1xuICAgIHRhZ05hbWUgPSB0YWcuc2xpY2UoMCwgLTEpO1xuICAgIHNlbGZDbG9zaW5nID0gdHJ1ZTtcbiAgfSBlbHNlIHtcbiAgICB0YWdOYW1lID0gdGFnO1xuICB9XG5cbiAgcmV0dXJuIHtcbiAgICB0eXBlOiAnRWxlbWVudE5vZGUnLFxuICAgIHRhZzogdGFnTmFtZSxcbiAgICBzZWxmQ2xvc2luZzogc2VsZkNsb3NpbmcsXG4gICAgYXR0cmlidXRlczogYXR0cnMgfHwgW10sXG4gICAgYmxvY2tQYXJhbXM6IGJsb2NrUGFyYW1zIHx8IFtdLFxuICAgIG1vZGlmaWVyczogbW9kaWZpZXJzIHx8IFtdLFxuICAgIGNvbW1lbnRzOiAoY29tbWVudHMgYXMgQVNUdjEuTXVzdGFjaGVDb21tZW50U3RhdGVtZW50W10pIHx8IFtdLFxuICAgIGNoaWxkcmVuOiBjaGlsZHJlbiB8fCBbXSxcbiAgICBsb2M6IGJ1aWxkTG9jKGxvYyB8fCBudWxsKSxcbiAgfTtcbn1cblxuZnVuY3Rpb24gYnVpbGRBdHRyKFxuICBuYW1lOiBzdHJpbmcsXG4gIHZhbHVlOiBBU1R2MS5BdHRyTm9kZVsndmFsdWUnXSxcbiAgbG9jPzogU291cmNlTG9jYXRpb25cbik6IEFTVHYxLkF0dHJOb2RlIHtcbiAgcmV0dXJuIHtcbiAgICB0eXBlOiAnQXR0ck5vZGUnLFxuICAgIG5hbWU6IG5hbWUsXG4gICAgdmFsdWU6IHZhbHVlLFxuICAgIGxvYzogYnVpbGRMb2MobG9jIHx8IG51bGwpLFxuICB9O1xufVxuXG5mdW5jdGlvbiBidWlsZFRleHQoY2hhcnM/OiBzdHJpbmcsIGxvYz86IFNvdXJjZUxvY2F0aW9uKTogQVNUdjEuVGV4dE5vZGUge1xuICByZXR1cm4ge1xuICAgIHR5cGU6ICdUZXh0Tm9kZScsXG4gICAgY2hhcnM6IGNoYXJzIHx8ICcnLFxuICAgIGxvYzogYnVpbGRMb2MobG9jIHx8IG51bGwpLFxuICB9O1xufVxuXG4vLyBFeHByZXNzaW9uc1xuXG5mdW5jdGlvbiBidWlsZFNleHByKFxuICBwYXRoOiBCdWlsZGVySGVhZCxcbiAgcGFyYW1zPzogQVNUdjEuRXhwcmVzc2lvbltdLFxuICBoYXNoPzogQVNUdjEuSGFzaCxcbiAgbG9jPzogU291cmNlTG9jYXRpb25cbik6IEFTVHYxLlN1YkV4cHJlc3Npb24ge1xuICByZXR1cm4ge1xuICAgIHR5cGU6ICdTdWJFeHByZXNzaW9uJyxcbiAgICBwYXRoOiBidWlsZFBhdGgocGF0aCksXG4gICAgcGFyYW1zOiBwYXJhbXMgfHwgW10sXG4gICAgaGFzaDogaGFzaCB8fCBidWlsZEhhc2goW10pLFxuICAgIGxvYzogYnVpbGRMb2MobG9jIHx8IG51bGwpLFxuICB9O1xufVxuXG5mdW5jdGlvbiBoZWFkVG9TdHJpbmcoaGVhZDogQVNUdjEuUGF0aEhlYWQpOiB7IG9yaWdpbmFsOiBzdHJpbmc7IHBhcnRzOiBzdHJpbmdbXSB9IHtcbiAgc3dpdGNoIChoZWFkLnR5cGUpIHtcbiAgICBjYXNlICdBdEhlYWQnOlxuICAgICAgcmV0dXJuIHsgb3JpZ2luYWw6IGhlYWQubmFtZSwgcGFydHM6IFtoZWFkLm5hbWVdIH07XG4gICAgY2FzZSAnVGhpc0hlYWQnOlxuICAgICAgcmV0dXJuIHsgb3JpZ2luYWw6IGB0aGlzYCwgcGFydHM6IFtdIH07XG4gICAgY2FzZSAnVmFySGVhZCc6XG4gICAgICByZXR1cm4geyBvcmlnaW5hbDogaGVhZC5uYW1lLCBwYXJ0czogW2hlYWQubmFtZV0gfTtcbiAgfVxufVxuXG5mdW5jdGlvbiBidWlsZEhlYWQoXG4gIG9yaWdpbmFsOiBzdHJpbmcsXG4gIGxvYzogU291cmNlTG9jYXRpb25cbik6IHsgaGVhZDogQVNUdjEuUGF0aEhlYWQ7IHRhaWw6IHN0cmluZ1tdIH0ge1xuICBsZXQgW2hlYWQsIC4uLnRhaWxdID0gb3JpZ2luYWwuc3BsaXQoJy4nKTtcbiAgbGV0IGhlYWROb2RlOiBBU1R2MS5QYXRoSGVhZDtcblxuICBpZiAoaGVhZCA9PT0gJ3RoaXMnKSB7XG4gICAgaGVhZE5vZGUgPSB7XG4gICAgICB0eXBlOiAnVGhpc0hlYWQnLFxuICAgICAgbG9jOiBidWlsZExvYyhsb2MgfHwgbnVsbCksXG4gICAgfTtcbiAgfSBlbHNlIGlmIChoZWFkWzBdID09PSAnQCcpIHtcbiAgICBoZWFkTm9kZSA9IHtcbiAgICAgIHR5cGU6ICdBdEhlYWQnLFxuICAgICAgbmFtZTogaGVhZCxcbiAgICAgIGxvYzogYnVpbGRMb2MobG9jIHx8IG51bGwpLFxuICAgIH07XG4gIH0gZWxzZSB7XG4gICAgaGVhZE5vZGUgPSB7XG4gICAgICB0eXBlOiAnVmFySGVhZCcsXG4gICAgICBuYW1lOiBoZWFkLFxuICAgICAgbG9jOiBidWlsZExvYyhsb2MgfHwgbnVsbCksXG4gICAgfTtcbiAgfVxuXG4gIHJldHVybiB7XG4gICAgaGVhZDogaGVhZE5vZGUsXG4gICAgdGFpbCxcbiAgfTtcbn1cblxuZnVuY3Rpb24gYnVpbGRUaGlzKGxvYzogU291cmNlTG9jYXRpb24pOiBBU1R2MS5QYXRoSGVhZCB7XG4gIHJldHVybiB7XG4gICAgdHlwZTogJ1RoaXNIZWFkJyxcbiAgICBsb2M6IGJ1aWxkTG9jKGxvYyB8fCBudWxsKSxcbiAgfTtcbn1cblxuZnVuY3Rpb24gYnVpbGRBdE5hbWUobmFtZTogc3RyaW5nLCBsb2M6IFNvdXJjZUxvY2F0aW9uKTogQVNUdjEuUGF0aEhlYWQge1xuICAvLyB0aGUgYEBgIHNob3VsZCBiZSBpbmNsdWRlZCBzbyB3ZSBoYXZlIGEgY29tcGxldGUgc291cmNlIHJhbmdlXG4gIGFzc2VydChuYW1lWzBdID09PSAnQCcsIGBjYWxsIGJ1aWxkZXJzLmF0KCkgd2l0aCBhIHN0cmluZyB0aGF0IHN0YXJ0cyB3aXRoICdAJ2ApO1xuXG4gIHJldHVybiB7XG4gICAgdHlwZTogJ0F0SGVhZCcsXG4gICAgbmFtZSxcbiAgICBsb2M6IGJ1aWxkTG9jKGxvYyB8fCBudWxsKSxcbiAgfTtcbn1cblxuZnVuY3Rpb24gYnVpbGRWYXIobmFtZTogc3RyaW5nLCBsb2M6IFNvdXJjZUxvY2F0aW9uKTogQVNUdjEuUGF0aEhlYWQge1xuICBhc3NlcnQobmFtZSAhPT0gJ3RoaXMnLCBgWW91IGNhbGxlZCBidWlsZGVycy52YXIoKSB3aXRoICd0aGlzJy4gQ2FsbCBidWlsZGVycy50aGlzIGluc3RlYWRgKTtcbiAgYXNzZXJ0KFxuICAgIG5hbWVbMF0gIT09ICdAJyxcbiAgICBgWW91IGNhbGxlZCBidWlsZGVycy52YXIoKSB3aXRoICcke25hbWV9Jy4gQ2FsbCBidWlsZGVycy5hdCgnJHtuYW1lfScpIGluc3RlYWRgXG4gICk7XG5cbiAgcmV0dXJuIHtcbiAgICB0eXBlOiAnVmFySGVhZCcsXG4gICAgbmFtZSxcbiAgICBsb2M6IGJ1aWxkTG9jKGxvYyB8fCBudWxsKSxcbiAgfTtcbn1cblxuZnVuY3Rpb24gYnVpbGRIZWFkRnJvbVN0cmluZyhoZWFkOiBzdHJpbmcsIGxvYzogU291cmNlTG9jYXRpb24pOiBBU1R2MS5QYXRoSGVhZCB7XG4gIGlmIChoZWFkWzBdID09PSAnQCcpIHtcbiAgICByZXR1cm4gYnVpbGRBdE5hbWUoaGVhZCwgbG9jKTtcbiAgfSBlbHNlIGlmIChoZWFkID09PSAndGhpcycpIHtcbiAgICByZXR1cm4gYnVpbGRUaGlzKGxvYyk7XG4gIH0gZWxzZSB7XG4gICAgcmV0dXJuIGJ1aWxkVmFyKGhlYWQsIGxvYyk7XG4gIH1cbn1cblxuZnVuY3Rpb24gYnVpbGROYW1lZEJsb2NrTmFtZShuYW1lOiBzdHJpbmcsIGxvYz86IFNvdXJjZUxvY2F0aW9uKTogQVNUdjEuTmFtZWRCbG9ja05hbWUge1xuICByZXR1cm4ge1xuICAgIHR5cGU6ICdOYW1lZEJsb2NrTmFtZScsXG4gICAgbmFtZSxcbiAgICBsb2M6IGJ1aWxkTG9jKGxvYyB8fCBudWxsKSxcbiAgfTtcbn1cblxuZnVuY3Rpb24gYnVpbGRDbGVhblBhdGgoXG4gIGhlYWQ6IEFTVHYxLlBhdGhIZWFkLFxuICB0YWlsOiBzdHJpbmdbXSxcbiAgbG9jOiBTb3VyY2VMb2NhdGlvblxuKTogQVNUdjEuUGF0aEV4cHJlc3Npb24ge1xuICBsZXQgeyBvcmlnaW5hbDogb3JpZ2luYWxIZWFkLCBwYXJ0czogaGVhZFBhcnRzIH0gPSBoZWFkVG9TdHJpbmcoaGVhZCk7XG4gIGxldCBwYXJ0cyA9IFsuLi5oZWFkUGFydHMsIC4uLnRhaWxdO1xuICBsZXQgb3JpZ2luYWwgPSBbLi4ub3JpZ2luYWxIZWFkLCAuLi5wYXJ0c10uam9pbignLicpO1xuXG4gIHJldHVybiBuZXcgUGF0aEV4cHJlc3Npb25JbXBsVjEob3JpZ2luYWwsIGhlYWQsIHRhaWwsIGJ1aWxkTG9jKGxvYyB8fCBudWxsKSk7XG59XG5cbmZ1bmN0aW9uIGJ1aWxkUGF0aChcbiAgcGF0aDogQVNUdjEuUGF0aEV4cHJlc3Npb24gfCBzdHJpbmcgfCB7IGhlYWQ6IHN0cmluZzsgdGFpbDogc3RyaW5nW10gfSxcbiAgbG9jPzogU291cmNlTG9jYXRpb25cbik6IEFTVHYxLlBhdGhFeHByZXNzaW9uO1xuZnVuY3Rpb24gYnVpbGRQYXRoKHBhdGg6IEFTVHYxLkV4cHJlc3Npb24sIGxvYz86IFNvdXJjZUxvY2F0aW9uKTogQVNUdjEuRXhwcmVzc2lvbjtcbmZ1bmN0aW9uIGJ1aWxkUGF0aChwYXRoOiBCdWlsZGVySGVhZCB8IEFTVHYxLkV4cHJlc3Npb24sIGxvYz86IFNvdXJjZUxvY2F0aW9uKTogQVNUdjEuRXhwcmVzc2lvbjtcbmZ1bmN0aW9uIGJ1aWxkUGF0aChcbiAgcGF0aDogQnVpbGRlckhlYWQgfCBBU1R2MS5FeHByZXNzaW9uIHwgeyBoZWFkOiBzdHJpbmc7IHRhaWw6IHN0cmluZ1tdIH0sXG4gIGxvYz86IFNvdXJjZUxvY2F0aW9uXG4pOiBBU1R2MS5FeHByZXNzaW9uIHtcbiAgaWYgKHR5cGVvZiBwYXRoICE9PSAnc3RyaW5nJykge1xuICAgIGlmICgndHlwZScgaW4gcGF0aCkge1xuICAgICAgcmV0dXJuIHBhdGg7XG4gICAgfSBlbHNlIHtcbiAgICAgIGxldCB7IGhlYWQsIHRhaWwgfSA9IGJ1aWxkSGVhZChwYXRoLmhlYWQsIFNvdXJjZVNwYW4uYnJva2VuKCkpO1xuXG4gICAgICBhc3NlcnQoXG4gICAgICAgIHRhaWwubGVuZ3RoID09PSAwLFxuICAgICAgICBgYnVpbGRlci5wYXRoKHsgaGVhZCwgdGFpbCB9KSBzaG91bGQgbm90IGJlIGNhbGxlZCB3aXRoIGEgaGVhZCB3aXRoIGRvdHMgaW4gaXRgXG4gICAgICApO1xuXG4gICAgICBsZXQgeyBvcmlnaW5hbDogb3JpZ2luYWxIZWFkIH0gPSBoZWFkVG9TdHJpbmcoaGVhZCk7XG5cbiAgICAgIHJldHVybiBuZXcgUGF0aEV4cHJlc3Npb25JbXBsVjEoXG4gICAgICAgIFtvcmlnaW5hbEhlYWQsIC4uLnRhaWxdLmpvaW4oJy4nKSxcbiAgICAgICAgaGVhZCxcbiAgICAgICAgdGFpbCxcbiAgICAgICAgYnVpbGRMb2MobG9jIHx8IG51bGwpXG4gICAgICApO1xuICAgIH1cbiAgfVxuXG4gIGxldCB7IGhlYWQsIHRhaWwgfSA9IGJ1aWxkSGVhZChwYXRoLCBTb3VyY2VTcGFuLmJyb2tlbigpKTtcblxuICByZXR1cm4gbmV3IFBhdGhFeHByZXNzaW9uSW1wbFYxKHBhdGgsIGhlYWQsIHRhaWwsIGJ1aWxkTG9jKGxvYyB8fCBudWxsKSk7XG59XG5cbmZ1bmN0aW9uIGJ1aWxkTGl0ZXJhbDxUIGV4dGVuZHMgQVNUdjEuTGl0ZXJhbD4oXG4gIHR5cGU6IFRbJ3R5cGUnXSxcbiAgdmFsdWU6IFRbJ3ZhbHVlJ10sXG4gIGxvYz86IFNvdXJjZUxvY2F0aW9uXG4pOiBUIHtcbiAgcmV0dXJuIHtcbiAgICB0eXBlLFxuICAgIHZhbHVlLFxuICAgIG9yaWdpbmFsOiB2YWx1ZSxcbiAgICBsb2M6IGJ1aWxkTG9jKGxvYyB8fCBudWxsKSxcbiAgfSBhcyBUO1xufVxuXG4vLyBNaXNjZWxsYW5lb3VzXG5cbmZ1bmN0aW9uIGJ1aWxkSGFzaChwYWlycz86IEFTVHYxLkhhc2hQYWlyW10sIGxvYz86IFNvdXJjZUxvY2F0aW9uKTogQVNUdjEuSGFzaCB7XG4gIHJldHVybiB7XG4gICAgdHlwZTogJ0hhc2gnLFxuICAgIHBhaXJzOiBwYWlycyB8fCBbXSxcbiAgICBsb2M6IGJ1aWxkTG9jKGxvYyB8fCBudWxsKSxcbiAgfTtcbn1cblxuZnVuY3Rpb24gYnVpbGRQYWlyKGtleTogc3RyaW5nLCB2YWx1ZTogQVNUdjEuRXhwcmVzc2lvbiwgbG9jPzogU291cmNlTG9jYXRpb24pOiBBU1R2MS5IYXNoUGFpciB7XG4gIHJldHVybiB7XG4gICAgdHlwZTogJ0hhc2hQYWlyJyxcbiAgICBrZXk6IGtleSxcbiAgICB2YWx1ZSxcbiAgICBsb2M6IGJ1aWxkTG9jKGxvYyB8fCBudWxsKSxcbiAgfTtcbn1cblxuZnVuY3Rpb24gYnVpbGRQcm9ncmFtKFxuICBib2R5PzogQVNUdjEuU3RhdGVtZW50W10sXG4gIGJsb2NrUGFyYW1zPzogc3RyaW5nW10sXG4gIGxvYz86IFNvdXJjZUxvY2F0aW9uXG4pOiBBU1R2MS5UZW1wbGF0ZSB7XG4gIHJldHVybiB7XG4gICAgdHlwZTogJ1RlbXBsYXRlJyxcbiAgICBib2R5OiBib2R5IHx8IFtdLFxuICAgIGJsb2NrUGFyYW1zOiBibG9ja1BhcmFtcyB8fCBbXSxcbiAgICBsb2M6IGJ1aWxkTG9jKGxvYyB8fCBudWxsKSxcbiAgfTtcbn1cblxuZnVuY3Rpb24gYnVpbGRCbG9ja0l0c2VsZihcbiAgYm9keT86IEFTVHYxLlN0YXRlbWVudFtdLFxuICBibG9ja1BhcmFtcz86IHN0cmluZ1tdLFxuICBjaGFpbmVkID0gZmFsc2UsXG4gIGxvYz86IFNvdXJjZUxvY2F0aW9uXG4pOiBBU1R2MS5CbG9jayB7XG4gIHJldHVybiB7XG4gICAgdHlwZTogJ0Jsb2NrJyxcbiAgICBib2R5OiBib2R5IHx8IFtdLFxuICAgIGJsb2NrUGFyYW1zOiBibG9ja1BhcmFtcyB8fCBbXSxcbiAgICBjaGFpbmVkLFxuICAgIGxvYzogYnVpbGRMb2MobG9jIHx8IG51bGwpLFxuICB9O1xufVxuXG5mdW5jdGlvbiBidWlsZFRlbXBsYXRlKFxuICBib2R5PzogQVNUdjEuU3RhdGVtZW50W10sXG4gIGJsb2NrUGFyYW1zPzogc3RyaW5nW10sXG4gIGxvYz86IFNvdXJjZUxvY2F0aW9uXG4pOiBBU1R2MS5UZW1wbGF0ZSB7XG4gIHJldHVybiB7XG4gICAgdHlwZTogJ1RlbXBsYXRlJyxcbiAgICBib2R5OiBib2R5IHx8IFtdLFxuICAgIGJsb2NrUGFyYW1zOiBibG9ja1BhcmFtcyB8fCBbXSxcbiAgICBsb2M6IGJ1aWxkTG9jKGxvYyB8fCBudWxsKSxcbiAgfTtcbn1cblxuZnVuY3Rpb24gYnVpbGRQb3NpdGlvbihsaW5lOiBudW1iZXIsIGNvbHVtbjogbnVtYmVyKTogU291cmNlUG9zaXRpb24ge1xuICByZXR1cm4ge1xuICAgIGxpbmUsXG4gICAgY29sdW1uLFxuICB9O1xufVxuXG5mdW5jdGlvbiBidWlsZExvYyhsb2M6IE9wdGlvbjxTb3VyY2VMb2NhdGlvbj4pOiBTb3VyY2VTcGFuO1xuZnVuY3Rpb24gYnVpbGRMb2MoXG4gIHN0YXJ0TGluZTogbnVtYmVyLFxuICBzdGFydENvbHVtbjogbnVtYmVyLFxuICBlbmRMaW5lPzogbnVtYmVyLFxuICBlbmRDb2x1bW4/OiBudW1iZXIsXG4gIHNvdXJjZT86IHN0cmluZ1xuKTogU291cmNlU3BhbjtcblxuZnVuY3Rpb24gYnVpbGRMb2MoLi4uYXJnczogYW55W10pOiBTb3VyY2VTcGFuIHtcbiAgaWYgKGFyZ3MubGVuZ3RoID09PSAxKSB7XG4gICAgbGV0IGxvYyA9IGFyZ3NbMF07XG5cbiAgICBpZiAobG9jICYmIHR5cGVvZiBsb2MgPT09ICdvYmplY3QnKSB7XG4gICAgICByZXR1cm4gU291cmNlU3Bhbi5mb3JIYnNMb2MoU09VUkNFKCksIGxvYyk7XG4gICAgfSBlbHNlIHtcbiAgICAgIHJldHVybiBTb3VyY2VTcGFuLmZvckhic0xvYyhTT1VSQ0UoKSwgU1lOVEhFVElDX0xPQ0FUSU9OKTtcbiAgICB9XG4gIH0gZWxzZSB7XG4gICAgbGV0IFtzdGFydExpbmUsIHN0YXJ0Q29sdW1uLCBlbmRMaW5lLCBlbmRDb2x1bW4sIF9zb3VyY2VdID0gYXJncztcbiAgICBsZXQgc291cmNlID0gX3NvdXJjZSA/IG5ldyBTb3VyY2UoJycsIF9zb3VyY2UpIDogU09VUkNFKCk7XG5cbiAgICByZXR1cm4gU291cmNlU3Bhbi5mb3JIYnNMb2Moc291cmNlLCB7XG4gICAgICBzdGFydDoge1xuICAgICAgICBsaW5lOiBzdGFydExpbmUsXG4gICAgICAgIGNvbHVtbjogc3RhcnRDb2x1bW4sXG4gICAgICB9LFxuICAgICAgZW5kOiB7XG4gICAgICAgIGxpbmU6IGVuZExpbmUsXG4gICAgICAgIGNvbHVtbjogZW5kQ29sdW1uLFxuICAgICAgfSxcbiAgICB9KTtcbiAgfVxufVxuXG5leHBvcnQgZGVmYXVsdCB7XG4gIG11c3RhY2hlOiBidWlsZE11c3RhY2hlLFxuICBibG9jazogYnVpbGRCbG9jayxcbiAgcGFydGlhbDogYnVpbGRQYXJ0aWFsLFxuICBjb21tZW50OiBidWlsZENvbW1lbnQsXG4gIG11c3RhY2hlQ29tbWVudDogYnVpbGRNdXN0YWNoZUNvbW1lbnQsXG4gIGVsZW1lbnQ6IGJ1aWxkRWxlbWVudCxcbiAgZWxlbWVudE1vZGlmaWVyOiBidWlsZEVsZW1lbnRNb2RpZmllcixcbiAgYXR0cjogYnVpbGRBdHRyLFxuICB0ZXh0OiBidWlsZFRleHQsXG4gIHNleHByOiBidWlsZFNleHByLFxuXG4gIGNvbmNhdDogYnVpbGRDb25jYXQsXG4gIGhhc2g6IGJ1aWxkSGFzaCxcbiAgcGFpcjogYnVpbGRQYWlyLFxuICBsaXRlcmFsOiBidWlsZExpdGVyYWwsXG4gIHByb2dyYW06IGJ1aWxkUHJvZ3JhbSxcbiAgYmxvY2tJdHNlbGY6IGJ1aWxkQmxvY2tJdHNlbGYsXG4gIHRlbXBsYXRlOiBidWlsZFRlbXBsYXRlLFxuICBsb2M6IGJ1aWxkTG9jLFxuICBwb3M6IGJ1aWxkUG9zaXRpb24sXG5cbiAgcGF0aDogYnVpbGRQYXRoLFxuXG4gIGZ1bGxQYXRoOiBidWlsZENsZWFuUGF0aCxcbiAgaGVhZDogYnVpbGRIZWFkRnJvbVN0cmluZyxcbiAgYXQ6IGJ1aWxkQXROYW1lLFxuICB2YXI6IGJ1aWxkVmFyLFxuICB0aGlzOiBidWlsZFRoaXMsXG4gIGJsb2NrTmFtZTogYnVpbGROYW1lZEJsb2NrTmFtZSxcblxuICBzdHJpbmc6IGxpdGVyYWwoJ1N0cmluZ0xpdGVyYWwnKSBhcyAodmFsdWU6IHN0cmluZykgPT4gQVNUdjEuU3RyaW5nTGl0ZXJhbCxcbiAgYm9vbGVhbjogbGl0ZXJhbCgnQm9vbGVhbkxpdGVyYWwnKSBhcyAodmFsdWU6IGJvb2xlYW4pID0+IEFTVHYxLkJvb2xlYW5MaXRlcmFsLFxuICBudW1iZXI6IGxpdGVyYWwoJ051bWJlckxpdGVyYWwnKSBhcyAodmFsdWU6IG51bWJlcikgPT4gQVNUdjEuTnVtYmVyTGl0ZXJhbCxcbiAgdW5kZWZpbmVkKCk6IEFTVHYxLlVuZGVmaW5lZExpdGVyYWwge1xuICAgIHJldHVybiBidWlsZExpdGVyYWwoJ1VuZGVmaW5lZExpdGVyYWwnLCB1bmRlZmluZWQpO1xuICB9LFxuICBudWxsKCk6IEFTVHYxLk51bGxMaXRlcmFsIHtcbiAgICByZXR1cm4gYnVpbGRMaXRlcmFsKCdOdWxsTGl0ZXJhbCcsIG51bGwpO1xuICB9LFxufTtcblxudHlwZSBCdWlsZExpdGVyYWw8VCBleHRlbmRzIEFTVHYxLkxpdGVyYWw+ID0gKHZhbHVlOiBUWyd2YWx1ZSddKSA9PiBUO1xuXG5mdW5jdGlvbiBsaXRlcmFsPFQgZXh0ZW5kcyBBU1R2MS5MaXRlcmFsPih0eXBlOiBUWyd0eXBlJ10pOiBCdWlsZExpdGVyYWw8VD4ge1xuICByZXR1cm4gZnVuY3Rpb24gKHZhbHVlOiBUWyd2YWx1ZSddLCBsb2M/OiBTb3VyY2VMb2NhdGlvbik6IFQge1xuICAgIHJldHVybiBidWlsZExpdGVyYWwodHlwZSwgdmFsdWUsIGxvYyk7XG4gIH07XG59XG4iXSwic291cmNlUm9vdCI6IiJ9

@@ -157,8 +157,13 @@ "use strict";

function buildElement(tag, options) {
var attrs = options.attrs,
blockParams = options.blockParams,
modifiers = options.modifiers,
comments = options.comments,
children = options.children,
loc = options.loc;
if (options === void 0) {
options = {};
}
var _options = options,
attrs = _options.attrs,
blockParams = _options.blockParams,
modifiers = _options.modifiers,
comments = _options.comments,
children = _options.children,
loc = _options.loc;
var tagName; // this is used for backwards compat, prior to `selfClosing` being part of the ElementNode AST

@@ -506,2 +511,2 @@

}
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3BhY2thZ2VzL0BnbGltbWVyL3N5bnRheC9saWIvdjEvcHVibGljLWJ1aWxkZXJzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7Ozs7QUFFQTs7QUFFQTs7QUFDQTs7QUFDQTs7QUFFQTs7QUFFQSxJQUFBLE9BQUE7O0FBRUEsU0FBQSxNQUFBLEdBQWU7QUFDYixNQUFJLENBQUosT0FBQSxFQUFjO0FBQ1osSUFBQSxPQUFPLEdBQUcsSUFBQSxlQUFBLENBQUEsRUFBQSxFQUFWLGFBQVUsQ0FBVjtBQUNEOztBQUVELFNBQUEsT0FBQTtBQUNEOztBQVNELFNBQUEsYUFBQSxDQUFBLElBQUEsRUFBQSxNQUFBLEVBQUEsSUFBQSxFQUFBLEdBQUEsRUFBQSxHQUFBLEVBQUEsS0FBQSxFQU0wQjtBQUV4QixNQUFJLE9BQUEsSUFBQSxLQUFKLFFBQUEsRUFBOEI7QUFDNUIsSUFBQSxJQUFJLEdBQUcsU0FBUyxDQUFoQixJQUFnQixDQUFoQjtBQUNEOztBQUVELFNBQU87QUFDTCxJQUFBLElBQUksRUFEQyxtQkFBQTtBQUVMLElBQUEsSUFGSyxFQUFBLElBQUE7QUFHTCxJQUFBLE1BQU0sRUFBRSxNQUFNLElBSFQsRUFBQTtBQUlMLElBQUEsSUFBSSxFQUFFLElBQUksSUFBSSxTQUFTLENBSmxCLEVBSWtCLENBSmxCO0FBS0wsSUFBQSxPQUFPLEVBQUUsQ0FMSixHQUFBO0FBTUwsSUFBQSxRQUFRLEVBQUUsQ0FBQyxDQU5OLEdBQUE7QUFPTCxJQUFBLEdBQUcsRUFBRSxRQUFRLENBQUMsR0FBRyxJQVBaLElBT1EsQ0FQUjtBQVFMLElBQUEsS0FBSyxFQUFFLEtBQUssSUFBSTtBQUFFLE1BQUEsSUFBSSxFQUFOLEtBQUE7QUFBZSxNQUFBLEtBQUssRUFBRTtBQUF0QjtBQVJYLEdBQVA7QUFVRDs7QUFFRCxTQUFBLFVBQUEsQ0FBQSxJQUFBLEVBQUEsTUFBQSxFQUFBLElBQUEsRUFBQSxhQUFBLEVBQUEsVUFBQSxFQUFBLEdBQUEsRUFBQSxTQUFBLEVBQUEsWUFBQSxFQUFBLFVBQUEsRUFTK0I7QUFFN0IsTUFBQSxZQUFBO0FBQ0EsTUFBQSxTQUFBOztBQUVBLE1BQUksYUFBYSxDQUFiLElBQUEsS0FBSixVQUFBLEVBQXVDO0FBQ3JDLFFBQUE7QUFBQTtBQUFBLE1BQWlCO0FBQUEsaUJBQUEsQ0FBQSxLQUFBLElBQUEscUJBQUEscURBQUEsQ0FBQTtBQUVoQjs7QUFFRCxJQUFBLFlBQVksR0FBSSxrQkFBTSxFQUFOLEVBQU0sYUFBTixFQUEwQjtBQUFFLE1BQUEsSUFBSSxFQUFFO0FBQVIsS0FBMUIsQ0FBaEI7QUFMRixHQUFBLE1BTU87QUFDTCxJQUFBLFlBQVksR0FBWixhQUFBO0FBQ0Q7O0FBRUQsTUFBSSxVQUFVLEtBQVYsU0FBQSxJQUE0QixVQUFVLEtBQXRDLElBQUEsSUFBbUQsVUFBVSxDQUFWLElBQUEsS0FBdkQsVUFBQSxFQUF1RjtBQUNyRixRQUFBO0FBQUE7QUFBQSxNQUFpQjtBQUFBLGlCQUFBLENBQUEsS0FBQSxJQUFBLHFCQUFBLHFEQUFBLENBQUE7QUFFaEI7O0FBRUQsSUFBQSxTQUFTLEdBQUksa0JBQU0sRUFBTixFQUFNLFVBQU4sRUFBdUI7QUFBRSxNQUFBLElBQUksRUFBRTtBQUFSLEtBQXZCLENBQWI7QUFMRixHQUFBLE1BTU87QUFDTCxJQUFBLFNBQVMsR0FBVCxVQUFBO0FBQ0Q7O0FBRUQsU0FBTztBQUNMLElBQUEsSUFBSSxFQURDLGdCQUFBO0FBRUwsSUFBQSxJQUFJLEVBQUUsU0FBUyxDQUZWLElBRVUsQ0FGVjtBQUdMLElBQUEsTUFBTSxFQUFFLE1BQU0sSUFIVCxFQUFBO0FBSUwsSUFBQSxJQUFJLEVBQUUsSUFBSSxJQUFJLFNBQVMsQ0FKbEIsRUFJa0IsQ0FKbEI7QUFLTCxJQUFBLE9BQU8sRUFBRSxZQUFZLElBTGhCLElBQUE7QUFNTCxJQUFBLE9BQU8sRUFBRSxTQUFTLElBTmIsSUFBQTtBQU9MLElBQUEsR0FBRyxFQUFFLFFBQVEsQ0FBQyxHQUFHLElBUFosSUFPUSxDQVBSO0FBUUwsSUFBQSxTQUFTLEVBQUUsU0FBUyxJQUFJO0FBQUUsTUFBQSxJQUFJLEVBQU4sS0FBQTtBQUFlLE1BQUEsS0FBSyxFQUFFO0FBQXRCLEtBUm5CO0FBU0wsSUFBQSxZQUFZLEVBQUUsWUFBWSxJQUFJO0FBQUUsTUFBQSxJQUFJLEVBQU4sS0FBQTtBQUFlLE1BQUEsS0FBSyxFQUFFO0FBQXRCLEtBVHpCO0FBVUwsSUFBQSxVQUFVLEVBQUUsVUFBVSxJQUFJO0FBQUUsTUFBQSxJQUFJLEVBQU4sS0FBQTtBQUFlLE1BQUEsS0FBSyxFQUFFO0FBQXRCO0FBVnJCLEdBQVA7QUFZRDs7QUFFRCxTQUFBLG9CQUFBLENBQUEsSUFBQSxFQUFBLE1BQUEsRUFBQSxJQUFBLEVBQUEsR0FBQSxFQUk4QjtBQUU1QixTQUFPO0FBQ0wsSUFBQSxJQUFJLEVBREMsMEJBQUE7QUFFTCxJQUFBLElBQUksRUFBRSxTQUFTLENBRlYsSUFFVSxDQUZWO0FBR0wsSUFBQSxNQUFNLEVBQUUsTUFBTSxJQUhULEVBQUE7QUFJTCxJQUFBLElBQUksRUFBRSxJQUFJLElBQUksU0FBUyxDQUpsQixFQUlrQixDQUpsQjtBQUtMLElBQUEsR0FBRyxFQUFFLFFBQVEsQ0FBQyxHQUFHLElBQUosSUFBQTtBQUxSLEdBQVA7QUFPRDs7QUFFRCxTQUFBLFlBQUEsQ0FBQSxJQUFBLEVBQUEsTUFBQSxFQUFBLElBQUEsRUFBQSxNQUFBLEVBQUEsR0FBQSxFQUtzQjtBQUVwQixTQUFPO0FBQ0wsSUFBQSxJQUFJLEVBREMsa0JBQUE7QUFFTCxJQUFBLElBQUksRUFGQyxJQUFBO0FBR0wsSUFBQSxNQUFNLEVBQUUsTUFBTSxJQUhULEVBQUE7QUFJTCxJQUFBLElBQUksRUFBRSxJQUFJLElBQUksU0FBUyxDQUpsQixFQUlrQixDQUpsQjtBQUtMLElBQUEsTUFBTSxFQUFFLE1BQU0sSUFMVCxFQUFBO0FBTUwsSUFBQSxLQUFLLEVBQUU7QUFBRSxNQUFBLElBQUksRUFBTixLQUFBO0FBQWUsTUFBQSxLQUFLLEVBQUU7QUFBdEIsS0FORjtBQU9MLElBQUEsR0FBRyxFQUFFLFFBQVEsQ0FBQyxHQUFHLElBQUosSUFBQTtBQVBSLEdBQVA7QUFTRDs7QUFFRCxTQUFBLFlBQUEsQ0FBQSxLQUFBLEVBQUEsR0FBQSxFQUF5RDtBQUN2RCxTQUFPO0FBQ0wsSUFBQSxJQUFJLEVBREMsa0JBQUE7QUFFTCxJQUFBLEtBQUssRUFGQSxLQUFBO0FBR0wsSUFBQSxHQUFHLEVBQUUsUUFBUSxDQUFDLEdBQUcsSUFBSixJQUFBO0FBSFIsR0FBUDtBQUtEOztBQUVELFNBQUEsb0JBQUEsQ0FBQSxLQUFBLEVBQUEsR0FBQSxFQUFpRTtBQUMvRCxTQUFPO0FBQ0wsSUFBQSxJQUFJLEVBREMsMEJBQUE7QUFFTCxJQUFBLEtBQUssRUFGQSxLQUFBO0FBR0wsSUFBQSxHQUFHLEVBQUUsUUFBUSxDQUFDLEdBQUcsSUFBSixJQUFBO0FBSFIsR0FBUDtBQUtEOztBQUVELFNBQUEsV0FBQSxDQUFBLEtBQUEsRUFBQSxHQUFBLEVBRXNCO0FBRXBCLE1BQUksQ0FBQyxxQkFBTCxLQUFLLENBQUwsRUFBdUI7QUFDckIsVUFBTSxJQUFOLEtBQU0sQ0FBTixxQ0FBTSxDQUFOO0FBQ0Q7O0FBRUQsU0FBTztBQUNMLElBQUEsSUFBSSxFQURDLGlCQUFBO0FBRUwsSUFBQSxLQUFLLEVBQUUsS0FBSyxJQUZQLEVBQUE7QUFHTCxJQUFBLEdBQUcsRUFBRSxRQUFRLENBQUMsR0FBRyxJQUFKLElBQUE7QUFIUixHQUFQO0FBS0Q7O0FBMkNELFNBQUEsWUFBQSxDQUFBLEdBQUEsRUFBQSxPQUFBLEVBQXNFO0FBQUEsTUFDaEUsS0FEZ0UsR0FDcEUsT0FEb0UsQ0FBQSxLQUFBO0FBQUEsTUFDaEUsV0FEZ0UsR0FDcEUsT0FEb0UsQ0FBQSxXQUFBO0FBQUEsTUFDaEUsU0FEZ0UsR0FDcEUsT0FEb0UsQ0FBQSxTQUFBO0FBQUEsTUFDaEUsUUFEZ0UsR0FDcEUsT0FEb0UsQ0FBQSxRQUFBO0FBQUEsTUFDaEUsUUFEZ0UsR0FDcEUsT0FEb0UsQ0FBQSxRQUFBO0FBQUEsTUFDWCxHQURXLEdBQ3BFLE9BRG9FLENBQUEsR0FBQTtBQUdwRSxNQUhvRSxPQUdwRSxDQUhvRSxDQUtwRTs7QUFDQSxNQUFJLFdBQVcsR0FBZixLQUFBOztBQUNBLE1BQUksT0FBQSxHQUFBLEtBQUosUUFBQSxFQUE2QjtBQUMzQixJQUFBLFdBQVcsR0FBRyxHQUFHLENBQWpCLFdBQUE7QUFDQSxJQUFBLE9BQU8sR0FBRyxHQUFHLENBQWIsSUFBQTtBQUZGLEdBQUEsTUFHTyxJQUFJLEdBQUcsQ0FBSCxLQUFBLENBQVUsQ0FBVixDQUFBLE1BQUosR0FBQSxFQUEyQjtBQUNoQyxJQUFBLE9BQU8sR0FBRyxHQUFHLENBQUgsS0FBQSxDQUFBLENBQUEsRUFBYSxDQUF2QixDQUFVLENBQVY7QUFDQSxJQUFBLFdBQVcsR0FBWCxJQUFBO0FBRkssR0FBQSxNQUdBO0FBQ0wsSUFBQSxPQUFPLEdBQVAsR0FBQTtBQUNEOztBQUVELFNBQU87QUFDTCxJQUFBLElBQUksRUFEQyxhQUFBO0FBRUwsSUFBQSxHQUFHLEVBRkUsT0FBQTtBQUdMLElBQUEsV0FBVyxFQUhOLFdBQUE7QUFJTCxJQUFBLFVBQVUsRUFBRSxLQUFLLElBSlosRUFBQTtBQUtMLElBQUEsV0FBVyxFQUFFLFdBQVcsSUFMbkIsRUFBQTtBQU1MLElBQUEsU0FBUyxFQUFFLFNBQVMsSUFOZixFQUFBO0FBT0wsSUFBQSxRQUFRLEVBQUcsUUFBNkMsSUFQbkQsRUFBQTtBQVFMLElBQUEsUUFBUSxFQUFFLFFBQVEsSUFSYixFQUFBO0FBU0wsSUFBQSxHQUFHLEVBQUUsUUFBUSxDQUFDLEdBQUcsSUFBSixJQUFBO0FBVFIsR0FBUDtBQVdEOztBQUVELFNBQUEsU0FBQSxDQUFBLElBQUEsRUFBQSxLQUFBLEVBQUEsR0FBQSxFQUdzQjtBQUVwQixTQUFPO0FBQ0wsSUFBQSxJQUFJLEVBREMsVUFBQTtBQUVMLElBQUEsSUFBSSxFQUZDLElBQUE7QUFHTCxJQUFBLEtBQUssRUFIQSxLQUFBO0FBSUwsSUFBQSxHQUFHLEVBQUUsUUFBUSxDQUFDLEdBQUcsSUFBSixJQUFBO0FBSlIsR0FBUDtBQU1EOztBQUVELFNBQUEsU0FBQSxDQUFBLEtBQUEsRUFBQSxHQUFBLEVBQXVEO0FBQ3JELFNBQU87QUFDTCxJQUFBLElBQUksRUFEQyxVQUFBO0FBRUwsSUFBQSxLQUFLLEVBQUUsS0FBSyxJQUZQLEVBQUE7QUFHTCxJQUFBLEdBQUcsRUFBRSxRQUFRLENBQUMsR0FBRyxJQUFKLElBQUE7QUFIUixHQUFQO0VBT0Y7OztBQUVBLFNBQUEsVUFBQSxDQUFBLElBQUEsRUFBQSxNQUFBLEVBQUEsSUFBQSxFQUFBLEdBQUEsRUFJc0I7QUFFcEIsU0FBTztBQUNMLElBQUEsSUFBSSxFQURDLGVBQUE7QUFFTCxJQUFBLElBQUksRUFBRSxTQUFTLENBRlYsSUFFVSxDQUZWO0FBR0wsSUFBQSxNQUFNLEVBQUUsTUFBTSxJQUhULEVBQUE7QUFJTCxJQUFBLElBQUksRUFBRSxJQUFJLElBQUksU0FBUyxDQUpsQixFQUlrQixDQUpsQjtBQUtMLElBQUEsR0FBRyxFQUFFLFFBQVEsQ0FBQyxHQUFHLElBQUosSUFBQTtBQUxSLEdBQVA7QUFPRDs7QUFFRCxTQUFBLFlBQUEsQ0FBQSxJQUFBLEVBQTBDO0FBQ3hDLFVBQVEsSUFBSSxDQUFaLElBQUE7QUFDRSxTQUFBLFFBQUE7QUFDRSxhQUFPO0FBQUUsUUFBQSxRQUFRLEVBQUUsSUFBSSxDQUFoQixJQUFBO0FBQXVCLFFBQUEsS0FBSyxFQUFFLENBQUMsSUFBSSxDQUFMLElBQUE7QUFBOUIsT0FBUDs7QUFDRixTQUFBLFVBQUE7QUFDRSxhQUFPO0FBQUUsUUFBQSxRQUFGLEVBQUEsTUFBQTtBQUFvQixRQUFBLEtBQUssRUFBRTtBQUEzQixPQUFQOztBQUNGLFNBQUEsU0FBQTtBQUNFLGFBQU87QUFBRSxRQUFBLFFBQVEsRUFBRSxJQUFJLENBQWhCLElBQUE7QUFBdUIsUUFBQSxLQUFLLEVBQUUsQ0FBQyxJQUFJLENBQUwsSUFBQTtBQUE5QixPQUFQO0FBTko7QUFRRDs7QUFFRCxTQUFBLFNBQUEsQ0FBQSxRQUFBLEVBQUEsR0FBQSxFQUVxQjtBQUFBLE1BQUEsZUFBQSxHQUVHLFFBQVEsQ0FBUixLQUFBLENBRkgsR0FFRyxDQUZIO0FBQUEsTUFFZixJQUZlLEdBQUEsZUFBQSxDQUFBLENBQUEsQ0FBQTtBQUFBLE1BRWYsSUFGZSxHQUFBLGVBQUEsQ0FBQSxLQUFBLENBQUEsQ0FBQSxDQUFBOztBQUduQixNQUFBLFFBQUE7O0FBRUEsTUFBSSxJQUFJLEtBQVIsTUFBQSxFQUFxQjtBQUNuQixJQUFBLFFBQVEsR0FBRztBQUNULE1BQUEsSUFBSSxFQURLLFVBQUE7QUFFVCxNQUFBLEdBQUcsRUFBRSxRQUFRLENBQUMsR0FBRyxJQUFKLElBQUE7QUFGSixLQUFYO0FBREYsR0FBQSxNQUtPLElBQUksSUFBSSxDQUFKLENBQUksQ0FBSixLQUFKLEdBQUEsRUFBcUI7QUFDMUIsSUFBQSxRQUFRLEdBQUc7QUFDVCxNQUFBLElBQUksRUFESyxRQUFBO0FBRVQsTUFBQSxJQUFJLEVBRkssSUFBQTtBQUdULE1BQUEsR0FBRyxFQUFFLFFBQVEsQ0FBQyxHQUFHLElBQUosSUFBQTtBQUhKLEtBQVg7QUFESyxHQUFBLE1BTUE7QUFDTCxJQUFBLFFBQVEsR0FBRztBQUNULE1BQUEsSUFBSSxFQURLLFNBQUE7QUFFVCxNQUFBLElBQUksRUFGSyxJQUFBO0FBR1QsTUFBQSxHQUFHLEVBQUUsUUFBUSxDQUFDLEdBQUcsSUFBSixJQUFBO0FBSEosS0FBWDtBQUtEOztBQUVELFNBQU87QUFDTCxJQUFBLElBQUksRUFEQyxRQUFBO0FBRUwsSUFBQSxJQUFBLEVBQUE7QUFGSyxHQUFQO0FBSUQ7O0FBRUQsU0FBQSxTQUFBLENBQUEsR0FBQSxFQUFzQztBQUNwQyxTQUFPO0FBQ0wsSUFBQSxJQUFJLEVBREMsVUFBQTtBQUVMLElBQUEsR0FBRyxFQUFFLFFBQVEsQ0FBQyxHQUFHLElBQUosSUFBQTtBQUZSLEdBQVA7QUFJRDs7QUFFRCxTQUFBLFdBQUEsQ0FBQSxJQUFBLEVBQUEsR0FBQSxFQUFzRDtBQUNwRDtBQURvRCxXQUVwRCxrQkFBTyxJQUFJLENBQUosQ0FBSSxDQUFKLEtBRjZDLEdBRXBELEVBRm9ELHVEQUVwRCxDQUZvRDtBQUlwRCxTQUFPO0FBQ0wsSUFBQSxJQUFJLEVBREMsUUFBQTtBQUVMLElBQUEsSUFGSyxFQUFBLElBQUE7QUFHTCxJQUFBLEdBQUcsRUFBRSxRQUFRLENBQUMsR0FBRyxJQUFKLElBQUE7QUFIUixHQUFQO0FBS0Q7O0FBRUQsU0FBQSxRQUFBLENBQUEsSUFBQSxFQUFBLEdBQUEsRUFBbUQ7QUFBQSxXQUNqRCxrQkFBTyxJQUFJLEtBRHNDLE1BQ2pELEVBRGlELG1FQUNqRCxDQURpRDtBQUFBLFdBRWpELGtCQUNFLElBQUksQ0FBSixDQUFJLENBQUosS0FESSxHQUFOLEVBQU0scUNBQUEsSUFBQSxHQUFBLHVCQUFBLEdBRjJDLElBRTNDLEdBRjJDLFlBRWpELENBRmlEO0FBT2pELFNBQU87QUFDTCxJQUFBLElBQUksRUFEQyxTQUFBO0FBRUwsSUFBQSxJQUZLLEVBQUEsSUFBQTtBQUdMLElBQUEsR0FBRyxFQUFFLFFBQVEsQ0FBQyxHQUFHLElBQUosSUFBQTtBQUhSLEdBQVA7QUFLRDs7QUFFRCxTQUFBLG1CQUFBLENBQUEsSUFBQSxFQUFBLEdBQUEsRUFBOEQ7QUFDNUQsTUFBSSxJQUFJLENBQUosQ0FBSSxDQUFKLEtBQUosR0FBQSxFQUFxQjtBQUNuQixXQUFPLFdBQVcsQ0FBQSxJQUFBLEVBQWxCLEdBQWtCLENBQWxCO0FBREYsR0FBQSxNQUVPLElBQUksSUFBSSxLQUFSLE1BQUEsRUFBcUI7QUFDMUIsV0FBTyxTQUFTLENBQWhCLEdBQWdCLENBQWhCO0FBREssR0FBQSxNQUVBO0FBQ0wsV0FBTyxRQUFRLENBQUEsSUFBQSxFQUFmLEdBQWUsQ0FBZjtBQUNEO0FBQ0Y7O0FBRUQsU0FBQSxtQkFBQSxDQUFBLElBQUEsRUFBQSxHQUFBLEVBQStEO0FBQzdELFNBQU87QUFDTCxJQUFBLElBQUksRUFEQyxnQkFBQTtBQUVMLElBQUEsSUFGSyxFQUFBLElBQUE7QUFHTCxJQUFBLEdBQUcsRUFBRSxRQUFRLENBQUMsR0FBRyxJQUFKLElBQUE7QUFIUixHQUFQO0FBS0Q7O0FBRUQsU0FBQSxjQUFBLENBQUEsSUFBQSxFQUFBLElBQUEsRUFBQSxHQUFBLEVBR3FCO0FBQUEsTUFBQSxhQUFBLEdBRWdDLFlBQVksQ0FGNUMsSUFFNEMsQ0FGNUM7QUFBQSxNQUVmLFlBRmUsR0FBQSxhQUFBLENBQUEsUUFBQTtBQUFBLE1BRWtCLFNBRmxCLEdBQUEsYUFBQSxDQUFBLEtBQUE7O0FBR25CLE1BQUksS0FBSyxHQUFBLEdBQUEsTUFBQSxDQUFBLFNBQUEsRUFBVCxJQUFTLENBQVQ7QUFDQSxNQUFJLFFBQVEsR0FBRyxHQUFBLE1BQUEsQ0FBQSxZQUFBLEVBQUEsS0FBQSxFQUFBLElBQUEsQ0FBZixHQUFlLENBQWY7QUFFQSxTQUFPLElBQUEsbUNBQUEsQ0FBQSxRQUFBLEVBQUEsSUFBQSxFQUFBLElBQUEsRUFBK0MsUUFBUSxDQUFDLEdBQUcsSUFBbEUsSUFBOEQsQ0FBdkQsQ0FBUDtBQUNEOztBQVFELFNBQUEsU0FBQSxDQUFBLElBQUEsRUFBQSxHQUFBLEVBRXNCO0FBRXBCLE1BQUksT0FBQSxJQUFBLEtBQUosUUFBQSxFQUE4QjtBQUM1QixRQUFJLFVBQUosSUFBQSxFQUFvQjtBQUNsQixhQUFBLElBQUE7QUFERixLQUFBLE1BRU87QUFBQSxVQUFBLFVBQUEsR0FDZ0IsU0FBUyxDQUFDLElBQUksQ0FBTCxJQUFBLEVBQVksaUJBRHJDLE1BQ3FDLEVBQVosQ0FEekI7QUFBQSxVQUNELEtBREMsR0FBQSxVQUFBLENBQUEsSUFBQTtBQUFBLFVBQ08sS0FEUCxHQUFBLFVBQUEsQ0FBQSxJQUFBOztBQUFBLGVBR0wsa0JBQ0UsS0FBSSxDQUFKLE1BQUEsS0FKRyxDQUdMLEVBSEssK0VBR0wsQ0FISzs7QUFBQSxVQUFBLGNBQUEsR0FRNEIsWUFBWSxDQVJ4QyxLQVF3QyxDQVJ4QztBQUFBLFVBUVcsWUFSWCxHQUFBLGNBQUEsQ0FBQSxRQUFBOztBQVVMLGFBQU8sSUFBQSxtQ0FBQSxDQUNMLENBQUEsWUFBQSxFQUFBLE1BQUEsQ0FBQSxLQUFBLEVBQUEsSUFBQSxDQURLLEdBQ0wsQ0FESyxFQUFBLEtBQUEsRUFBQSxLQUFBLEVBSUwsUUFBUSxDQUFDLEdBQUcsSUFKZCxJQUlVLENBSkgsQ0FBUDtBQU1EO0FBQ0Y7O0FBdEJtQixNQUFBLFdBQUEsR0F3QkMsU0FBUyxDQUFBLElBQUEsRUFBTyxpQkF4QmpCLE1Bd0JpQixFQUFQLENBeEJWO0FBQUEsTUF3QmhCLElBeEJnQixHQUFBLFdBQUEsQ0FBQSxJQUFBO0FBQUEsTUF3QlIsSUF4QlEsR0FBQSxXQUFBLENBQUEsSUFBQTs7QUEwQnBCLFNBQU8sSUFBQSxtQ0FBQSxDQUFBLElBQUEsRUFBQSxJQUFBLEVBQUEsSUFBQSxFQUEyQyxRQUFRLENBQUMsR0FBRyxJQUE5RCxJQUEwRCxDQUFuRCxDQUFQO0FBQ0Q7O0FBRUQsU0FBQSxZQUFBLENBQUEsSUFBQSxFQUFBLEtBQUEsRUFBQSxHQUFBLEVBR3NCO0FBRXBCLFNBQU87QUFDTCxJQUFBLElBREssRUFBQSxJQUFBO0FBRUwsSUFBQSxLQUZLLEVBQUEsS0FBQTtBQUdMLElBQUEsUUFBUSxFQUhILEtBQUE7QUFJTCxJQUFBLEdBQUcsRUFBRSxRQUFRLENBQUMsR0FBRyxJQUFKLElBQUE7QUFKUixHQUFQO0VBUUY7OztBQUVBLFNBQUEsU0FBQSxDQUFBLEtBQUEsRUFBQSxHQUFBLEVBQWlFO0FBQy9ELFNBQU87QUFDTCxJQUFBLElBQUksRUFEQyxNQUFBO0FBRUwsSUFBQSxLQUFLLEVBQUUsS0FBSyxJQUZQLEVBQUE7QUFHTCxJQUFBLEdBQUcsRUFBRSxRQUFRLENBQUMsR0FBRyxJQUFKLElBQUE7QUFIUixHQUFQO0FBS0Q7O0FBRUQsU0FBQSxTQUFBLENBQUEsR0FBQSxFQUFBLEtBQUEsRUFBQSxHQUFBLEVBQTZFO0FBQzNFLFNBQU87QUFDTCxJQUFBLElBQUksRUFEQyxVQUFBO0FBRUwsSUFBQSxHQUFHLEVBRkUsR0FBQTtBQUdMLElBQUEsS0FISyxFQUFBLEtBQUE7QUFJTCxJQUFBLEdBQUcsRUFBRSxRQUFRLENBQUMsR0FBRyxJQUFKLElBQUE7QUFKUixHQUFQO0FBTUQ7O0FBRUQsU0FBQSxZQUFBLENBQUEsSUFBQSxFQUFBLFdBQUEsRUFBQSxHQUFBLEVBR3NCO0FBRXBCLFNBQU87QUFDTCxJQUFBLElBQUksRUFEQyxVQUFBO0FBRUwsSUFBQSxJQUFJLEVBQUUsSUFBSSxJQUZMLEVBQUE7QUFHTCxJQUFBLFdBQVcsRUFBRSxXQUFXLElBSG5CLEVBQUE7QUFJTCxJQUFBLEdBQUcsRUFBRSxRQUFRLENBQUMsR0FBRyxJQUFKLElBQUE7QUFKUixHQUFQO0FBTUQ7O0FBRUQsU0FBQSxnQkFBQSxDQUFBLElBQUEsRUFBQSxXQUFBLEVBQUEsT0FBQSxFQUFBLEdBQUEsRUFJc0I7QUFBQSxNQURwQixPQUNvQixLQUFBLEtBQUEsQ0FBQSxFQUFBO0FBRHBCLElBQUEsT0FDb0IsR0FKdEIsS0FHRTtBQUNvQjs7QUFFcEIsU0FBTztBQUNMLElBQUEsSUFBSSxFQURDLE9BQUE7QUFFTCxJQUFBLElBQUksRUFBRSxJQUFJLElBRkwsRUFBQTtBQUdMLElBQUEsV0FBVyxFQUFFLFdBQVcsSUFIbkIsRUFBQTtBQUlMLElBQUEsT0FKSyxFQUFBLE9BQUE7QUFLTCxJQUFBLEdBQUcsRUFBRSxRQUFRLENBQUMsR0FBRyxJQUFKLElBQUE7QUFMUixHQUFQO0FBT0Q7O0FBRUQsU0FBQSxhQUFBLENBQUEsSUFBQSxFQUFBLFdBQUEsRUFBQSxHQUFBLEVBR3NCO0FBRXBCLFNBQU87QUFDTCxJQUFBLElBQUksRUFEQyxVQUFBO0FBRUwsSUFBQSxJQUFJLEVBQUUsSUFBSSxJQUZMLEVBQUE7QUFHTCxJQUFBLFdBQVcsRUFBRSxXQUFXLElBSG5CLEVBQUE7QUFJTCxJQUFBLEdBQUcsRUFBRSxRQUFRLENBQUMsR0FBRyxJQUFKLElBQUE7QUFKUixHQUFQO0FBTUQ7O0FBRUQsU0FBQSxhQUFBLENBQUEsSUFBQSxFQUFBLE1BQUEsRUFBbUQ7QUFDakQsU0FBTztBQUNMLElBQUEsSUFESyxFQUFBLElBQUE7QUFFTCxJQUFBLE1BQUEsRUFBQTtBQUZLLEdBQVA7QUFJRDs7QUFXRCxTQUFBLFFBQUEsR0FBZ0M7QUFBQSxPQUFBLElBQUEsSUFBQSxHQUFBLFNBQUEsQ0FBQSxNQUFBLEVBQWhDLElBQWdDLEdBQUEsSUFBQSxLQUFBLENBQUEsSUFBQSxDQUFBLEVBQUEsSUFBQSxHQUFBLENBQUEsRUFBQSxJQUFBLEdBQUEsSUFBQSxFQUFBLElBQUEsRUFBQSxFQUFBO0FBQWhDLElBQUEsSUFBZ0MsQ0FBQSxJQUFBLENBQWhDLEdBQWdDLFNBQUEsQ0FBQSxJQUFBLENBQWhDO0FBQWdDOztBQUM5QixNQUFJLElBQUksQ0FBSixNQUFBLEtBQUosQ0FBQSxFQUF1QjtBQUNyQixRQUFJLEdBQUcsR0FBRyxJQUFJLENBQWQsQ0FBYyxDQUFkOztBQUVBLFFBQUksR0FBRyxJQUFJLE9BQUEsR0FBQSxLQUFYLFFBQUEsRUFBb0M7QUFDbEMsYUFBTyxpQkFBQSxTQUFBLENBQXFCLE1BQXJCLEVBQUEsRUFBUCxHQUFPLENBQVA7QUFERixLQUFBLE1BRU87QUFDTCxhQUFPLGlCQUFBLFNBQUEsQ0FBcUIsTUFBckIsRUFBQSxFQUFQLDRCQUFPLENBQVA7QUFDRDtBQVBILEdBQUEsTUFRTztBQUFBLFFBQ0QsU0FEQyxHQUNMLElBREssQ0FBQSxDQUFBLENBQUE7QUFBQSxRQUNELFdBREMsR0FDTCxJQURLLENBQUEsQ0FBQSxDQUFBO0FBQUEsUUFDRCxPQURDLEdBQ0wsSUFESyxDQUFBLENBQUEsQ0FBQTtBQUFBLFFBQ0QsU0FEQyxHQUNMLElBREssQ0FBQSxDQUFBLENBQUE7QUFBQSxRQUNELE9BREMsR0FDTCxJQURLLENBQUEsQ0FBQSxDQUFBO0FBRUwsUUFBSSxNQUFNLEdBQUcsT0FBTyxHQUFHLElBQUEsZUFBQSxDQUFBLEVBQUEsRUFBSCxPQUFHLENBQUgsR0FBNkIsTUFBakQsRUFBQTtBQUVBLFdBQU8saUJBQUEsU0FBQSxDQUFBLE1BQUEsRUFBNkI7QUFDbEMsTUFBQSxLQUFLLEVBQUU7QUFDTCxRQUFBLElBQUksRUFEQyxTQUFBO0FBRUwsUUFBQSxNQUFNLEVBQUU7QUFGSCxPQUQyQjtBQUtsQyxNQUFBLEdBQUcsRUFBRTtBQUNILFFBQUEsSUFBSSxFQURELE9BQUE7QUFFSCxRQUFBLE1BQU0sRUFBRTtBQUZMO0FBTDZCLEtBQTdCLENBQVA7QUFVRDtBQUNGOztlQUVjO0FBQ2IsRUFBQSxRQUFRLEVBREssYUFBQTtBQUViLEVBQUEsS0FBSyxFQUZRLFVBQUE7QUFHYixFQUFBLE9BQU8sRUFITSxZQUFBO0FBSWIsRUFBQSxPQUFPLEVBSk0sWUFBQTtBQUtiLEVBQUEsZUFBZSxFQUxGLG9CQUFBO0FBTWIsRUFBQSxPQUFPLEVBTk0sWUFBQTtBQU9iLEVBQUEsZUFBZSxFQVBGLG9CQUFBO0FBUWIsRUFBQSxJQUFJLEVBUlMsU0FBQTtBQVNiLEVBQUEsSUFBSSxFQVRTLFNBQUE7QUFVYixFQUFBLEtBQUssRUFWUSxVQUFBO0FBWWIsRUFBQSxNQUFNLEVBWk8sV0FBQTtBQWFiLEVBQUEsSUFBSSxFQWJTLFNBQUE7QUFjYixFQUFBLElBQUksRUFkUyxTQUFBO0FBZWIsRUFBQSxPQUFPLEVBZk0sWUFBQTtBQWdCYixFQUFBLE9BQU8sRUFoQk0sWUFBQTtBQWlCYixFQUFBLFdBQVcsRUFqQkUsZ0JBQUE7QUFrQmIsRUFBQSxRQUFRLEVBbEJLLGFBQUE7QUFtQmIsRUFBQSxHQUFHLEVBbkJVLFFBQUE7QUFvQmIsRUFBQSxHQUFHLEVBcEJVLGFBQUE7QUFzQmIsRUFBQSxJQUFJLEVBdEJTLFNBQUE7QUF3QmIsRUFBQSxRQUFRLEVBeEJLLGNBQUE7QUF5QmIsRUFBQSxJQUFJLEVBekJTLG1CQUFBO0FBMEJiLEVBQUEsRUFBRSxFQTFCVyxXQUFBO0FBMkJiLFNBM0JhLFFBQUE7QUE0QmIsVUE1QmEsU0FBQTtBQTZCYixFQUFBLFNBQVMsRUE3QkksbUJBQUE7QUErQmIsRUFBQSxNQUFNLEVBQUUsT0FBTyxDQS9CRixlQStCRSxDQS9CRjtBQWdDYixhQUFTLE9BQU8sQ0FoQ0gsZ0JBZ0NHLENBaENIO0FBaUNiLEVBQUEsTUFBTSxFQUFFLE9BQU8sQ0FqQ0YsZUFpQ0UsQ0FqQ0Y7QUFrQ2IsRUFBQSxTQWxDYSxFQUFBLFVBQUEsVUFBQSxFQUFBO0FBQUEsYUFBQSxTQUFBLEdBQUE7QUFBQSxhQUFBLFVBQUEsQ0FBQSxLQUFBLENBQUEsSUFBQSxFQUFBLFNBQUEsQ0FBQTtBQUFBOztBQUFBLElBQUEsU0FBQSxDQUFBLFFBQUEsR0FBQSxZQUFBO0FBQUEsYUFBQSxVQUFBLENBQUEsUUFBQSxFQUFBO0FBQUEsS0FBQTs7QUFBQSxXQUFBLFNBQUE7QUFBQSxHQUFBLENBQUEsWUFrQ0o7QUFDUCxXQUFPLFlBQVksQ0FBQSxrQkFBQSxFQUFuQixTQUFtQixDQUFuQjtBQW5DVyxHQUFBLENBQUE7QUFBQSxVQUFBLFNBQUEsS0FBQSxHQXFDVDtBQUNGLFdBQU8sWUFBWSxDQUFBLGFBQUEsRUFBbkIsSUFBbUIsQ0FBbkI7QUFDRDtBQXZDWSxDOzs7QUE0Q2YsU0FBQSxPQUFBLENBQUEsSUFBQSxFQUF5RDtBQUN2RCxTQUFPLFVBQUEsS0FBQSxFQUFBLEdBQUEsRUFBaUQ7QUFDdEQsV0FBTyxZQUFZLENBQUEsSUFBQSxFQUFBLEtBQUEsRUFBbkIsR0FBbUIsQ0FBbkI7QUFERixHQUFBO0FBR0QiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBEaWN0LCBPcHRpb24gfSBmcm9tICdAZ2xpbW1lci9pbnRlcmZhY2VzJztcbmltcG9ydCB7IExPQ0FMX0RFQlVHIH0gZnJvbSAnQGdsaW1tZXIvbG9jYWwtZGVidWctZmxhZ3MnO1xuaW1wb3J0IHsgYXNzZXJ0LCBhc3NpZ24sIGRlcHJlY2F0ZSwgaXNQcmVzZW50IH0gZnJvbSAnQGdsaW1tZXIvdXRpbCc7XG5cbmltcG9ydCB7IFNvdXJjZUxvY2F0aW9uLCBTb3VyY2VQb3NpdGlvbiwgU1lOVEhFVElDX0xPQ0FUSU9OIH0gZnJvbSAnLi4vc291cmNlL2xvY2F0aW9uJztcbmltcG9ydCB7IFNvdXJjZSB9IGZyb20gJy4uL3NvdXJjZS9zb3VyY2UnO1xuaW1wb3J0IHsgU291cmNlU3BhbiB9IGZyb20gJy4uL3NvdXJjZS9zcGFuJztcbmltcG9ydCAqIGFzIEFTVHYxIGZyb20gJy4vYXBpJztcbmltcG9ydCB7IFBhdGhFeHByZXNzaW9uSW1wbFYxIH0gZnJvbSAnLi9sZWdhY3ktaW50ZXJvcCc7XG5cbmxldCBfU09VUkNFOiBTb3VyY2UgfCB1bmRlZmluZWQ7XG5cbmZ1bmN0aW9uIFNPVVJDRSgpOiBTb3VyY2Uge1xuICBpZiAoIV9TT1VSQ0UpIHtcbiAgICBfU09VUkNFID0gbmV3IFNvdXJjZSgnJywgJyhzeW50aGV0aWMpJyk7XG4gIH1cblxuICByZXR1cm4gX1NPVVJDRTtcbn1cblxuLy8gY29uc3QgU09VUkNFID0gbmV3IFNvdXJjZSgnJywgJyh0ZXN0cyknKTtcblxuLy8gU3RhdGVtZW50c1xuXG5leHBvcnQgdHlwZSBCdWlsZGVySGVhZCA9IHN0cmluZyB8IEFTVHYxLkV4cHJlc3Npb247XG5leHBvcnQgdHlwZSBUYWdEZXNjcmlwdG9yID0gc3RyaW5nIHwgeyBuYW1lOiBzdHJpbmc7IHNlbGZDbG9zaW5nOiBib29sZWFuIH07XG5cbmZ1bmN0aW9uIGJ1aWxkTXVzdGFjaGUoXG4gIHBhdGg6IEJ1aWxkZXJIZWFkIHwgQVNUdjEuTGl0ZXJhbCxcbiAgcGFyYW1zPzogQVNUdjEuRXhwcmVzc2lvbltdLFxuICBoYXNoPzogQVNUdjEuSGFzaCxcbiAgcmF3PzogYm9vbGVhbixcbiAgbG9jPzogU291cmNlTG9jYXRpb24sXG4gIHN0cmlwPzogQVNUdjEuU3RyaXBGbGFnc1xuKTogQVNUdjEuTXVzdGFjaGVTdGF0ZW1lbnQge1xuICBpZiAodHlwZW9mIHBhdGggPT09ICdzdHJpbmcnKSB7XG4gICAgcGF0aCA9IGJ1aWxkUGF0aChwYXRoKTtcbiAgfVxuXG4gIHJldHVybiB7XG4gICAgdHlwZTogJ011c3RhY2hlU3RhdGVtZW50JyxcbiAgICBwYXRoLFxuICAgIHBhcmFtczogcGFyYW1zIHx8IFtdLFxuICAgIGhhc2g6IGhhc2ggfHwgYnVpbGRIYXNoKFtdKSxcbiAgICBlc2NhcGVkOiAhcmF3LFxuICAgIHRydXN0aW5nOiAhIXJhdyxcbiAgICBsb2M6IGJ1aWxkTG9jKGxvYyB8fCBudWxsKSxcbiAgICBzdHJpcDogc3RyaXAgfHwgeyBvcGVuOiBmYWxzZSwgY2xvc2U6IGZhbHNlIH0sXG4gIH07XG59XG5cbmZ1bmN0aW9uIGJ1aWxkQmxvY2soXG4gIHBhdGg6IEJ1aWxkZXJIZWFkLFxuICBwYXJhbXM6IE9wdGlvbjxBU1R2MS5FeHByZXNzaW9uW10+LFxuICBoYXNoOiBPcHRpb248QVNUdjEuSGFzaD4sXG4gIF9kZWZhdWx0QmxvY2s6IEFTVHYxLlBvc3NpYmx5RGVwcmVjYXRlZEJsb2NrLFxuICBfZWxzZUJsb2NrPzogT3B0aW9uPEFTVHYxLlBvc3NpYmx5RGVwcmVjYXRlZEJsb2NrPixcbiAgbG9jPzogU291cmNlTG9jYXRpb24sXG4gIG9wZW5TdHJpcD86IEFTVHYxLlN0cmlwRmxhZ3MsXG4gIGludmVyc2VTdHJpcD86IEFTVHYxLlN0cmlwRmxhZ3MsXG4gIGNsb3NlU3RyaXA/OiBBU1R2MS5TdHJpcEZsYWdzXG4pOiBBU1R2MS5CbG9ja1N0YXRlbWVudCB7XG4gIGxldCBkZWZhdWx0QmxvY2s6IEFTVHYxLkJsb2NrO1xuICBsZXQgZWxzZUJsb2NrOiBPcHRpb248QVNUdjEuQmxvY2s+IHwgdW5kZWZpbmVkO1xuXG4gIGlmIChfZGVmYXVsdEJsb2NrLnR5cGUgPT09ICdUZW1wbGF0ZScpIHtcbiAgICBpZiAoTE9DQUxfREVCVUcpIHtcbiAgICAgIGRlcHJlY2F0ZShgYi5wcm9ncmFtIGlzIGRlcHJlY2F0ZWQuIFVzZSBiLmJsb2NrSXRzZWxmIGluc3RlYWQuYCk7XG4gICAgfVxuXG4gICAgZGVmYXVsdEJsb2NrID0gKGFzc2lnbih7fSwgX2RlZmF1bHRCbG9jaywgeyB0eXBlOiAnQmxvY2snIH0pIGFzIHVua25vd24pIGFzIEFTVHYxLkJsb2NrO1xuICB9IGVsc2Uge1xuICAgIGRlZmF1bHRCbG9jayA9IF9kZWZhdWx0QmxvY2s7XG4gIH1cblxuICBpZiAoX2Vsc2VCbG9jayAhPT0gdW5kZWZpbmVkICYmIF9lbHNlQmxvY2sgIT09IG51bGwgJiYgX2Vsc2VCbG9jay50eXBlID09PSAnVGVtcGxhdGUnKSB7XG4gICAgaWYgKExPQ0FMX0RFQlVHKSB7XG4gICAgICBkZXByZWNhdGUoYGIucHJvZ3JhbSBpcyBkZXByZWNhdGVkLiBVc2UgYi5ibG9ja0l0c2VsZiBpbnN0ZWFkLmApO1xuICAgIH1cblxuICAgIGVsc2VCbG9jayA9IChhc3NpZ24oe30sIF9lbHNlQmxvY2ssIHsgdHlwZTogJ0Jsb2NrJyB9KSBhcyB1bmtub3duKSBhcyBBU1R2MS5CbG9jaztcbiAgfSBlbHNlIHtcbiAgICBlbHNlQmxvY2sgPSBfZWxzZUJsb2NrO1xuICB9XG5cbiAgcmV0dXJuIHtcbiAgICB0eXBlOiAnQmxvY2tTdGF0ZW1lbnQnLFxuICAgIHBhdGg6IGJ1aWxkUGF0aChwYXRoKSxcbiAgICBwYXJhbXM6IHBhcmFtcyB8fCBbXSxcbiAgICBoYXNoOiBoYXNoIHx8IGJ1aWxkSGFzaChbXSksXG4gICAgcHJvZ3JhbTogZGVmYXVsdEJsb2NrIHx8IG51bGwsXG4gICAgaW52ZXJzZTogZWxzZUJsb2NrIHx8IG51bGwsXG4gICAgbG9jOiBidWlsZExvYyhsb2MgfHwgbnVsbCksXG4gICAgb3BlblN0cmlwOiBvcGVuU3RyaXAgfHwgeyBvcGVuOiBmYWxzZSwgY2xvc2U6IGZhbHNlIH0sXG4gICAgaW52ZXJzZVN0cmlwOiBpbnZlcnNlU3RyaXAgfHwgeyBvcGVuOiBmYWxzZSwgY2xvc2U6IGZhbHNlIH0sXG4gICAgY2xvc2VTdHJpcDogY2xvc2VTdHJpcCB8fCB7IG9wZW46IGZhbHNlLCBjbG9zZTogZmFsc2UgfSxcbiAgfTtcbn1cblxuZnVuY3Rpb24gYnVpbGRFbGVtZW50TW9kaWZpZXIoXG4gIHBhdGg6IEJ1aWxkZXJIZWFkIHwgQVNUdjEuRXhwcmVzc2lvbixcbiAgcGFyYW1zPzogQVNUdjEuRXhwcmVzc2lvbltdLFxuICBoYXNoPzogQVNUdjEuSGFzaCxcbiAgbG9jPzogT3B0aW9uPFNvdXJjZUxvY2F0aW9uPlxuKTogQVNUdjEuRWxlbWVudE1vZGlmaWVyU3RhdGVtZW50IHtcbiAgcmV0dXJuIHtcbiAgICB0eXBlOiAnRWxlbWVudE1vZGlmaWVyU3RhdGVtZW50JyxcbiAgICBwYXRoOiBidWlsZFBhdGgocGF0aCksXG4gICAgcGFyYW1zOiBwYXJhbXMgfHwgW10sXG4gICAgaGFzaDogaGFzaCB8fCBidWlsZEhhc2goW10pLFxuICAgIGxvYzogYnVpbGRMb2MobG9jIHx8IG51bGwpLFxuICB9O1xufVxuXG5mdW5jdGlvbiBidWlsZFBhcnRpYWwoXG4gIG5hbWU6IEFTVHYxLlBhdGhFeHByZXNzaW9uLFxuICBwYXJhbXM/OiBBU1R2MS5FeHByZXNzaW9uW10sXG4gIGhhc2g/OiBBU1R2MS5IYXNoLFxuICBpbmRlbnQ/OiBzdHJpbmcsXG4gIGxvYz86IFNvdXJjZUxvY2F0aW9uXG4pOiBBU1R2MS5QYXJ0aWFsU3RhdGVtZW50IHtcbiAgcmV0dXJuIHtcbiAgICB0eXBlOiAnUGFydGlhbFN0YXRlbWVudCcsXG4gICAgbmFtZTogbmFtZSxcbiAgICBwYXJhbXM6IHBhcmFtcyB8fCBbXSxcbiAgICBoYXNoOiBoYXNoIHx8IGJ1aWxkSGFzaChbXSksXG4gICAgaW5kZW50OiBpbmRlbnQgfHwgJycsXG4gICAgc3RyaXA6IHsgb3BlbjogZmFsc2UsIGNsb3NlOiBmYWxzZSB9LFxuICAgIGxvYzogYnVpbGRMb2MobG9jIHx8IG51bGwpLFxuICB9O1xufVxuXG5mdW5jdGlvbiBidWlsZENvbW1lbnQodmFsdWU6IHN0cmluZywgbG9jPzogU291cmNlTG9jYXRpb24pOiBBU1R2MS5Db21tZW50U3RhdGVtZW50IHtcbiAgcmV0dXJuIHtcbiAgICB0eXBlOiAnQ29tbWVudFN0YXRlbWVudCcsXG4gICAgdmFsdWU6IHZhbHVlLFxuICAgIGxvYzogYnVpbGRMb2MobG9jIHx8IG51bGwpLFxuICB9O1xufVxuXG5mdW5jdGlvbiBidWlsZE11c3RhY2hlQ29tbWVudCh2YWx1ZTogc3RyaW5nLCBsb2M/OiBTb3VyY2VMb2NhdGlvbik6IEFTVHYxLk11c3RhY2hlQ29tbWVudFN0YXRlbWVudCB7XG4gIHJldHVybiB7XG4gICAgdHlwZTogJ011c3RhY2hlQ29tbWVudFN0YXRlbWVudCcsXG4gICAgdmFsdWU6IHZhbHVlLFxuICAgIGxvYzogYnVpbGRMb2MobG9jIHx8IG51bGwpLFxuICB9O1xufVxuXG5mdW5jdGlvbiBidWlsZENvbmNhdChcbiAgcGFydHM6IChBU1R2MS5UZXh0Tm9kZSB8IEFTVHYxLk11c3RhY2hlU3RhdGVtZW50KVtdLFxuICBsb2M/OiBTb3VyY2VMb2NhdGlvblxuKTogQVNUdjEuQ29uY2F0U3RhdGVtZW50IHtcbiAgaWYgKCFpc1ByZXNlbnQocGFydHMpKSB7XG4gICAgdGhyb3cgbmV3IEVycm9yKGBiLmNvbmNhdCByZXF1aXJlcyBhdCBsZWFzdCBvbmUgcGFydGApO1xuICB9XG5cbiAgcmV0dXJuIHtcbiAgICB0eXBlOiAnQ29uY2F0U3RhdGVtZW50JyxcbiAgICBwYXJ0czogcGFydHMgfHwgW10sXG4gICAgbG9jOiBidWlsZExvYyhsb2MgfHwgbnVsbCksXG4gIH07XG59XG5cbi8vIE5vZGVzXG5cbmV4cG9ydCB0eXBlIEVsZW1lbnRQYXJ0cyA9XG4gIHwgWydhdHRycycsIC4uLkF0dHJTZXhwW11dXG4gIHwgWydtb2RpZmllcnMnLCAuLi5Nb2RpZmllclNleHBbXV1cbiAgfCBbJ2JvZHknLCAuLi5BU1R2MS5TdGF0ZW1lbnRbXV1cbiAgfCBbJ2NvbW1lbnRzJywgLi4uRWxlbWVudENvbW1lbnRbXV1cbiAgfCBbJ2FzJywgLi4uc3RyaW5nW11dXG4gIHwgWydsb2MnLCBTb3VyY2VMb2NhdGlvbl07XG5cbmV4cG9ydCB0eXBlIFBhdGhTZXhwID0gc3RyaW5nIHwgWydwYXRoJywgc3RyaW5nLCBMb2NTZXhwP107XG5cbmV4cG9ydCB0eXBlIE1vZGlmaWVyU2V4cCA9XG4gIHwgc3RyaW5nXG4gIHwgW1BhdGhTZXhwLCBMb2NTZXhwP11cbiAgfCBbUGF0aFNleHAsIEFTVHYxLkV4cHJlc3Npb25bXSwgTG9jU2V4cD9dXG4gIHwgW1BhdGhTZXhwLCBBU1R2MS5FeHByZXNzaW9uW10sIERpY3Q8QVNUdjEuRXhwcmVzc2lvbj4sIExvY1NleHA/XTtcblxuZXhwb3J0IHR5cGUgQXR0clNleHAgPSBbc3RyaW5nLCBBU1R2MS5BdHRyTm9kZVsndmFsdWUnXSB8IHN0cmluZywgTG9jU2V4cD9dO1xuXG5leHBvcnQgdHlwZSBMb2NTZXhwID0gWydsb2MnLCBTb3VyY2VMb2NhdGlvbl07XG5cbmV4cG9ydCB0eXBlIEVsZW1lbnRDb21tZW50ID0gQVNUdjEuTXVzdGFjaGVDb21tZW50U3RhdGVtZW50IHwgU291cmNlTG9jYXRpb24gfCBzdHJpbmc7XG5cbmV4cG9ydCB0eXBlIFNleHBWYWx1ZSA9XG4gIHwgc3RyaW5nXG4gIHwgQVNUdjEuRXhwcmVzc2lvbltdXG4gIHwgRGljdDxBU1R2MS5FeHByZXNzaW9uPlxuICB8IExvY1NleHBcbiAgfCBQYXRoU2V4cFxuICB8IHVuZGVmaW5lZDtcblxuZXhwb3J0IGludGVyZmFjZSBCdWlsZEVsZW1lbnRPcHRpb25zIHtcbiAgYXR0cnM/OiBBU1R2MS5BdHRyTm9kZVtdO1xuICBtb2RpZmllcnM/OiBBU1R2MS5FbGVtZW50TW9kaWZpZXJTdGF0ZW1lbnRbXTtcbiAgY2hpbGRyZW4/OiBBU1R2MS5TdGF0ZW1lbnRbXTtcbiAgY29tbWVudHM/OiBFbGVtZW50Q29tbWVudFtdO1xuICBibG9ja1BhcmFtcz86IHN0cmluZ1tdO1xuICBsb2M/OiBTb3VyY2VTcGFuO1xufVxuXG5mdW5jdGlvbiBidWlsZEVsZW1lbnQodGFnOiBUYWdEZXNjcmlwdG9yLCBvcHRpb25zOiBCdWlsZEVsZW1lbnRPcHRpb25zKTogQVNUdjEuRWxlbWVudE5vZGUge1xuICBsZXQgeyBhdHRycywgYmxvY2tQYXJhbXMsIG1vZGlmaWVycywgY29tbWVudHMsIGNoaWxkcmVuLCBsb2MgfSA9IG9wdGlvbnM7XG5cbiAgbGV0IHRhZ05hbWU6IHN0cmluZztcblxuICAvLyB0aGlzIGlzIHVzZWQgZm9yIGJhY2t3YXJkcyBjb21wYXQsIHByaW9yIHRvIGBzZWxmQ2xvc2luZ2AgYmVpbmcgcGFydCBvZiB0aGUgRWxlbWVudE5vZGUgQVNUXG4gIGxldCBzZWxmQ2xvc2luZyA9IGZhbHNlO1xuICBpZiAodHlwZW9mIHRhZyA9PT0gJ29iamVjdCcpIHtcbiAgICBzZWxmQ2xvc2luZyA9IHRhZy5zZWxmQ2xvc2luZztcbiAgICB0YWdOYW1lID0gdGFnLm5hbWU7XG4gIH0gZWxzZSBpZiAodGFnLnNsaWNlKC0xKSA9PT0gJy8nKSB7XG4gICAgdGFnTmFtZSA9IHRhZy5zbGljZSgwLCAtMSk7XG4gICAgc2VsZkNsb3NpbmcgPSB0cnVlO1xuICB9IGVsc2Uge1xuICAgIHRhZ05hbWUgPSB0YWc7XG4gIH1cblxuICByZXR1cm4ge1xuICAgIHR5cGU6ICdFbGVtZW50Tm9kZScsXG4gICAgdGFnOiB0YWdOYW1lLFxuICAgIHNlbGZDbG9zaW5nOiBzZWxmQ2xvc2luZyxcbiAgICBhdHRyaWJ1dGVzOiBhdHRycyB8fCBbXSxcbiAgICBibG9ja1BhcmFtczogYmxvY2tQYXJhbXMgfHwgW10sXG4gICAgbW9kaWZpZXJzOiBtb2RpZmllcnMgfHwgW10sXG4gICAgY29tbWVudHM6IChjb21tZW50cyBhcyBBU1R2MS5NdXN0YWNoZUNvbW1lbnRTdGF0ZW1lbnRbXSkgfHwgW10sXG4gICAgY2hpbGRyZW46IGNoaWxkcmVuIHx8IFtdLFxuICAgIGxvYzogYnVpbGRMb2MobG9jIHx8IG51bGwpLFxuICB9O1xufVxuXG5mdW5jdGlvbiBidWlsZEF0dHIoXG4gIG5hbWU6IHN0cmluZyxcbiAgdmFsdWU6IEFTVHYxLkF0dHJOb2RlWyd2YWx1ZSddLFxuICBsb2M/OiBTb3VyY2VMb2NhdGlvblxuKTogQVNUdjEuQXR0ck5vZGUge1xuICByZXR1cm4ge1xuICAgIHR5cGU6ICdBdHRyTm9kZScsXG4gICAgbmFtZTogbmFtZSxcbiAgICB2YWx1ZTogdmFsdWUsXG4gICAgbG9jOiBidWlsZExvYyhsb2MgfHwgbnVsbCksXG4gIH07XG59XG5cbmZ1bmN0aW9uIGJ1aWxkVGV4dChjaGFycz86IHN0cmluZywgbG9jPzogU291cmNlTG9jYXRpb24pOiBBU1R2MS5UZXh0Tm9kZSB7XG4gIHJldHVybiB7XG4gICAgdHlwZTogJ1RleHROb2RlJyxcbiAgICBjaGFyczogY2hhcnMgfHwgJycsXG4gICAgbG9jOiBidWlsZExvYyhsb2MgfHwgbnVsbCksXG4gIH07XG59XG5cbi8vIEV4cHJlc3Npb25zXG5cbmZ1bmN0aW9uIGJ1aWxkU2V4cHIoXG4gIHBhdGg6IEJ1aWxkZXJIZWFkLFxuICBwYXJhbXM/OiBBU1R2MS5FeHByZXNzaW9uW10sXG4gIGhhc2g/OiBBU1R2MS5IYXNoLFxuICBsb2M/OiBTb3VyY2VMb2NhdGlvblxuKTogQVNUdjEuU3ViRXhwcmVzc2lvbiB7XG4gIHJldHVybiB7XG4gICAgdHlwZTogJ1N1YkV4cHJlc3Npb24nLFxuICAgIHBhdGg6IGJ1aWxkUGF0aChwYXRoKSxcbiAgICBwYXJhbXM6IHBhcmFtcyB8fCBbXSxcbiAgICBoYXNoOiBoYXNoIHx8IGJ1aWxkSGFzaChbXSksXG4gICAgbG9jOiBidWlsZExvYyhsb2MgfHwgbnVsbCksXG4gIH07XG59XG5cbmZ1bmN0aW9uIGhlYWRUb1N0cmluZyhoZWFkOiBBU1R2MS5QYXRoSGVhZCk6IHsgb3JpZ2luYWw6IHN0cmluZzsgcGFydHM6IHN0cmluZ1tdIH0ge1xuICBzd2l0Y2ggKGhlYWQudHlwZSkge1xuICAgIGNhc2UgJ0F0SGVhZCc6XG4gICAgICByZXR1cm4geyBvcmlnaW5hbDogaGVhZC5uYW1lLCBwYXJ0czogW2hlYWQubmFtZV0gfTtcbiAgICBjYXNlICdUaGlzSGVhZCc6XG4gICAgICByZXR1cm4geyBvcmlnaW5hbDogYHRoaXNgLCBwYXJ0czogW10gfTtcbiAgICBjYXNlICdWYXJIZWFkJzpcbiAgICAgIHJldHVybiB7IG9yaWdpbmFsOiBoZWFkLm5hbWUsIHBhcnRzOiBbaGVhZC5uYW1lXSB9O1xuICB9XG59XG5cbmZ1bmN0aW9uIGJ1aWxkSGVhZChcbiAgb3JpZ2luYWw6IHN0cmluZyxcbiAgbG9jOiBTb3VyY2VMb2NhdGlvblxuKTogeyBoZWFkOiBBU1R2MS5QYXRoSGVhZDsgdGFpbDogc3RyaW5nW10gfSB7XG4gIGxldCBbaGVhZCwgLi4udGFpbF0gPSBvcmlnaW5hbC5zcGxpdCgnLicpO1xuICBsZXQgaGVhZE5vZGU6IEFTVHYxLlBhdGhIZWFkO1xuXG4gIGlmIChoZWFkID09PSAndGhpcycpIHtcbiAgICBoZWFkTm9kZSA9IHtcbiAgICAgIHR5cGU6ICdUaGlzSGVhZCcsXG4gICAgICBsb2M6IGJ1aWxkTG9jKGxvYyB8fCBudWxsKSxcbiAgICB9O1xuICB9IGVsc2UgaWYgKGhlYWRbMF0gPT09ICdAJykge1xuICAgIGhlYWROb2RlID0ge1xuICAgICAgdHlwZTogJ0F0SGVhZCcsXG4gICAgICBuYW1lOiBoZWFkLFxuICAgICAgbG9jOiBidWlsZExvYyhsb2MgfHwgbnVsbCksXG4gICAgfTtcbiAgfSBlbHNlIHtcbiAgICBoZWFkTm9kZSA9IHtcbiAgICAgIHR5cGU6ICdWYXJIZWFkJyxcbiAgICAgIG5hbWU6IGhlYWQsXG4gICAgICBsb2M6IGJ1aWxkTG9jKGxvYyB8fCBudWxsKSxcbiAgICB9O1xuICB9XG5cbiAgcmV0dXJuIHtcbiAgICBoZWFkOiBoZWFkTm9kZSxcbiAgICB0YWlsLFxuICB9O1xufVxuXG5mdW5jdGlvbiBidWlsZFRoaXMobG9jOiBTb3VyY2VMb2NhdGlvbik6IEFTVHYxLlBhdGhIZWFkIHtcbiAgcmV0dXJuIHtcbiAgICB0eXBlOiAnVGhpc0hlYWQnLFxuICAgIGxvYzogYnVpbGRMb2MobG9jIHx8IG51bGwpLFxuICB9O1xufVxuXG5mdW5jdGlvbiBidWlsZEF0TmFtZShuYW1lOiBzdHJpbmcsIGxvYzogU291cmNlTG9jYXRpb24pOiBBU1R2MS5QYXRoSGVhZCB7XG4gIC8vIHRoZSBgQGAgc2hvdWxkIGJlIGluY2x1ZGVkIHNvIHdlIGhhdmUgYSBjb21wbGV0ZSBzb3VyY2UgcmFuZ2VcbiAgYXNzZXJ0KG5hbWVbMF0gPT09ICdAJywgYGNhbGwgYnVpbGRlcnMuYXQoKSB3aXRoIGEgc3RyaW5nIHRoYXQgc3RhcnRzIHdpdGggJ0AnYCk7XG5cbiAgcmV0dXJuIHtcbiAgICB0eXBlOiAnQXRIZWFkJyxcbiAgICBuYW1lLFxuICAgIGxvYzogYnVpbGRMb2MobG9jIHx8IG51bGwpLFxuICB9O1xufVxuXG5mdW5jdGlvbiBidWlsZFZhcihuYW1lOiBzdHJpbmcsIGxvYzogU291cmNlTG9jYXRpb24pOiBBU1R2MS5QYXRoSGVhZCB7XG4gIGFzc2VydChuYW1lICE9PSAndGhpcycsIGBZb3UgY2FsbGVkIGJ1aWxkZXJzLnZhcigpIHdpdGggJ3RoaXMnLiBDYWxsIGJ1aWxkZXJzLnRoaXMgaW5zdGVhZGApO1xuICBhc3NlcnQoXG4gICAgbmFtZVswXSAhPT0gJ0AnLFxuICAgIGBZb3UgY2FsbGVkIGJ1aWxkZXJzLnZhcigpIHdpdGggJyR7bmFtZX0nLiBDYWxsIGJ1aWxkZXJzLmF0KCcke25hbWV9JykgaW5zdGVhZGBcbiAgKTtcblxuICByZXR1cm4ge1xuICAgIHR5cGU6ICdWYXJIZWFkJyxcbiAgICBuYW1lLFxuICAgIGxvYzogYnVpbGRMb2MobG9jIHx8IG51bGwpLFxuICB9O1xufVxuXG5mdW5jdGlvbiBidWlsZEhlYWRGcm9tU3RyaW5nKGhlYWQ6IHN0cmluZywgbG9jOiBTb3VyY2VMb2NhdGlvbik6IEFTVHYxLlBhdGhIZWFkIHtcbiAgaWYgKGhlYWRbMF0gPT09ICdAJykge1xuICAgIHJldHVybiBidWlsZEF0TmFtZShoZWFkLCBsb2MpO1xuICB9IGVsc2UgaWYgKGhlYWQgPT09ICd0aGlzJykge1xuICAgIHJldHVybiBidWlsZFRoaXMobG9jKTtcbiAgfSBlbHNlIHtcbiAgICByZXR1cm4gYnVpbGRWYXIoaGVhZCwgbG9jKTtcbiAgfVxufVxuXG5mdW5jdGlvbiBidWlsZE5hbWVkQmxvY2tOYW1lKG5hbWU6IHN0cmluZywgbG9jPzogU291cmNlTG9jYXRpb24pOiBBU1R2MS5OYW1lZEJsb2NrTmFtZSB7XG4gIHJldHVybiB7XG4gICAgdHlwZTogJ05hbWVkQmxvY2tOYW1lJyxcbiAgICBuYW1lLFxuICAgIGxvYzogYnVpbGRMb2MobG9jIHx8IG51bGwpLFxuICB9O1xufVxuXG5mdW5jdGlvbiBidWlsZENsZWFuUGF0aChcbiAgaGVhZDogQVNUdjEuUGF0aEhlYWQsXG4gIHRhaWw6IHN0cmluZ1tdLFxuICBsb2M6IFNvdXJjZUxvY2F0aW9uXG4pOiBBU1R2MS5QYXRoRXhwcmVzc2lvbiB7XG4gIGxldCB7IG9yaWdpbmFsOiBvcmlnaW5hbEhlYWQsIHBhcnRzOiBoZWFkUGFydHMgfSA9IGhlYWRUb1N0cmluZyhoZWFkKTtcbiAgbGV0IHBhcnRzID0gWy4uLmhlYWRQYXJ0cywgLi4udGFpbF07XG4gIGxldCBvcmlnaW5hbCA9IFsuLi5vcmlnaW5hbEhlYWQsIC4uLnBhcnRzXS5qb2luKCcuJyk7XG5cbiAgcmV0dXJuIG5ldyBQYXRoRXhwcmVzc2lvbkltcGxWMShvcmlnaW5hbCwgaGVhZCwgdGFpbCwgYnVpbGRMb2MobG9jIHx8IG51bGwpKTtcbn1cblxuZnVuY3Rpb24gYnVpbGRQYXRoKFxuICBwYXRoOiBBU1R2MS5QYXRoRXhwcmVzc2lvbiB8IHN0cmluZyB8IHsgaGVhZDogc3RyaW5nOyB0YWlsOiBzdHJpbmdbXSB9LFxuICBsb2M/OiBTb3VyY2VMb2NhdGlvblxuKTogQVNUdjEuUGF0aEV4cHJlc3Npb247XG5mdW5jdGlvbiBidWlsZFBhdGgocGF0aDogQVNUdjEuRXhwcmVzc2lvbiwgbG9jPzogU291cmNlTG9jYXRpb24pOiBBU1R2MS5FeHByZXNzaW9uO1xuZnVuY3Rpb24gYnVpbGRQYXRoKHBhdGg6IEJ1aWxkZXJIZWFkIHwgQVNUdjEuRXhwcmVzc2lvbiwgbG9jPzogU291cmNlTG9jYXRpb24pOiBBU1R2MS5FeHByZXNzaW9uO1xuZnVuY3Rpb24gYnVpbGRQYXRoKFxuICBwYXRoOiBCdWlsZGVySGVhZCB8IEFTVHYxLkV4cHJlc3Npb24gfCB7IGhlYWQ6IHN0cmluZzsgdGFpbDogc3RyaW5nW10gfSxcbiAgbG9jPzogU291cmNlTG9jYXRpb25cbik6IEFTVHYxLkV4cHJlc3Npb24ge1xuICBpZiAodHlwZW9mIHBhdGggIT09ICdzdHJpbmcnKSB7XG4gICAgaWYgKCd0eXBlJyBpbiBwYXRoKSB7XG4gICAgICByZXR1cm4gcGF0aDtcbiAgICB9IGVsc2Uge1xuICAgICAgbGV0IHsgaGVhZCwgdGFpbCB9ID0gYnVpbGRIZWFkKHBhdGguaGVhZCwgU291cmNlU3Bhbi5icm9rZW4oKSk7XG5cbiAgICAgIGFzc2VydChcbiAgICAgICAgdGFpbC5sZW5ndGggPT09IDAsXG4gICAgICAgIGBidWlsZGVyLnBhdGgoeyBoZWFkLCB0YWlsIH0pIHNob3VsZCBub3QgYmUgY2FsbGVkIHdpdGggYSBoZWFkIHdpdGggZG90cyBpbiBpdGBcbiAgICAgICk7XG5cbiAgICAgIGxldCB7IG9yaWdpbmFsOiBvcmlnaW5hbEhlYWQgfSA9IGhlYWRUb1N0cmluZyhoZWFkKTtcblxuICAgICAgcmV0dXJuIG5ldyBQYXRoRXhwcmVzc2lvbkltcGxWMShcbiAgICAgICAgW29yaWdpbmFsSGVhZCwgLi4udGFpbF0uam9pbignLicpLFxuICAgICAgICBoZWFkLFxuICAgICAgICB0YWlsLFxuICAgICAgICBidWlsZExvYyhsb2MgfHwgbnVsbClcbiAgICAgICk7XG4gICAgfVxuICB9XG5cbiAgbGV0IHsgaGVhZCwgdGFpbCB9ID0gYnVpbGRIZWFkKHBhdGgsIFNvdXJjZVNwYW4uYnJva2VuKCkpO1xuXG4gIHJldHVybiBuZXcgUGF0aEV4cHJlc3Npb25JbXBsVjEocGF0aCwgaGVhZCwgdGFpbCwgYnVpbGRMb2MobG9jIHx8IG51bGwpKTtcbn1cblxuZnVuY3Rpb24gYnVpbGRMaXRlcmFsPFQgZXh0ZW5kcyBBU1R2MS5MaXRlcmFsPihcbiAgdHlwZTogVFsndHlwZSddLFxuICB2YWx1ZTogVFsndmFsdWUnXSxcbiAgbG9jPzogU291cmNlTG9jYXRpb25cbik6IFQge1xuICByZXR1cm4ge1xuICAgIHR5cGUsXG4gICAgdmFsdWUsXG4gICAgb3JpZ2luYWw6IHZhbHVlLFxuICAgIGxvYzogYnVpbGRMb2MobG9jIHx8IG51bGwpLFxuICB9IGFzIFQ7XG59XG5cbi8vIE1pc2NlbGxhbmVvdXNcblxuZnVuY3Rpb24gYnVpbGRIYXNoKHBhaXJzPzogQVNUdjEuSGFzaFBhaXJbXSwgbG9jPzogU291cmNlTG9jYXRpb24pOiBBU1R2MS5IYXNoIHtcbiAgcmV0dXJuIHtcbiAgICB0eXBlOiAnSGFzaCcsXG4gICAgcGFpcnM6IHBhaXJzIHx8IFtdLFxuICAgIGxvYzogYnVpbGRMb2MobG9jIHx8IG51bGwpLFxuICB9O1xufVxuXG5mdW5jdGlvbiBidWlsZFBhaXIoa2V5OiBzdHJpbmcsIHZhbHVlOiBBU1R2MS5FeHByZXNzaW9uLCBsb2M/OiBTb3VyY2VMb2NhdGlvbik6IEFTVHYxLkhhc2hQYWlyIHtcbiAgcmV0dXJuIHtcbiAgICB0eXBlOiAnSGFzaFBhaXInLFxuICAgIGtleToga2V5LFxuICAgIHZhbHVlLFxuICAgIGxvYzogYnVpbGRMb2MobG9jIHx8IG51bGwpLFxuICB9O1xufVxuXG5mdW5jdGlvbiBidWlsZFByb2dyYW0oXG4gIGJvZHk/OiBBU1R2MS5TdGF0ZW1lbnRbXSxcbiAgYmxvY2tQYXJhbXM/OiBzdHJpbmdbXSxcbiAgbG9jPzogU291cmNlTG9jYXRpb25cbik6IEFTVHYxLlRlbXBsYXRlIHtcbiAgcmV0dXJuIHtcbiAgICB0eXBlOiAnVGVtcGxhdGUnLFxuICAgIGJvZHk6IGJvZHkgfHwgW10sXG4gICAgYmxvY2tQYXJhbXM6IGJsb2NrUGFyYW1zIHx8IFtdLFxuICAgIGxvYzogYnVpbGRMb2MobG9jIHx8IG51bGwpLFxuICB9O1xufVxuXG5mdW5jdGlvbiBidWlsZEJsb2NrSXRzZWxmKFxuICBib2R5PzogQVNUdjEuU3RhdGVtZW50W10sXG4gIGJsb2NrUGFyYW1zPzogc3RyaW5nW10sXG4gIGNoYWluZWQgPSBmYWxzZSxcbiAgbG9jPzogU291cmNlTG9jYXRpb25cbik6IEFTVHYxLkJsb2NrIHtcbiAgcmV0dXJuIHtcbiAgICB0eXBlOiAnQmxvY2snLFxuICAgIGJvZHk6IGJvZHkgfHwgW10sXG4gICAgYmxvY2tQYXJhbXM6IGJsb2NrUGFyYW1zIHx8IFtdLFxuICAgIGNoYWluZWQsXG4gICAgbG9jOiBidWlsZExvYyhsb2MgfHwgbnVsbCksXG4gIH07XG59XG5cbmZ1bmN0aW9uIGJ1aWxkVGVtcGxhdGUoXG4gIGJvZHk/OiBBU1R2MS5TdGF0ZW1lbnRbXSxcbiAgYmxvY2tQYXJhbXM/OiBzdHJpbmdbXSxcbiAgbG9jPzogU291cmNlTG9jYXRpb25cbik6IEFTVHYxLlRlbXBsYXRlIHtcbiAgcmV0dXJuIHtcbiAgICB0eXBlOiAnVGVtcGxhdGUnLFxuICAgIGJvZHk6IGJvZHkgfHwgW10sXG4gICAgYmxvY2tQYXJhbXM6IGJsb2NrUGFyYW1zIHx8IFtdLFxuICAgIGxvYzogYnVpbGRMb2MobG9jIHx8IG51bGwpLFxuICB9O1xufVxuXG5mdW5jdGlvbiBidWlsZFBvc2l0aW9uKGxpbmU6IG51bWJlciwgY29sdW1uOiBudW1iZXIpOiBTb3VyY2VQb3NpdGlvbiB7XG4gIHJldHVybiB7XG4gICAgbGluZSxcbiAgICBjb2x1bW4sXG4gIH07XG59XG5cbmZ1bmN0aW9uIGJ1aWxkTG9jKGxvYzogT3B0aW9uPFNvdXJjZUxvY2F0aW9uPik6IFNvdXJjZVNwYW47XG5mdW5jdGlvbiBidWlsZExvYyhcbiAgc3RhcnRMaW5lOiBudW1iZXIsXG4gIHN0YXJ0Q29sdW1uOiBudW1iZXIsXG4gIGVuZExpbmU/OiBudW1iZXIsXG4gIGVuZENvbHVtbj86IG51bWJlcixcbiAgc291cmNlPzogc3RyaW5nXG4pOiBTb3VyY2VTcGFuO1xuXG5mdW5jdGlvbiBidWlsZExvYyguLi5hcmdzOiBhbnlbXSk6IFNvdXJjZVNwYW4ge1xuICBpZiAoYXJncy5sZW5ndGggPT09IDEpIHtcbiAgICBsZXQgbG9jID0gYXJnc1swXTtcblxuICAgIGlmIChsb2MgJiYgdHlwZW9mIGxvYyA9PT0gJ29iamVjdCcpIHtcbiAgICAgIHJldHVybiBTb3VyY2VTcGFuLmZvckhic0xvYyhTT1VSQ0UoKSwgbG9jKTtcbiAgICB9IGVsc2Uge1xuICAgICAgcmV0dXJuIFNvdXJjZVNwYW4uZm9ySGJzTG9jKFNPVVJDRSgpLCBTWU5USEVUSUNfTE9DQVRJT04pO1xuICAgIH1cbiAgfSBlbHNlIHtcbiAgICBsZXQgW3N0YXJ0TGluZSwgc3RhcnRDb2x1bW4sIGVuZExpbmUsIGVuZENvbHVtbiwgX3NvdXJjZV0gPSBhcmdzO1xuICAgIGxldCBzb3VyY2UgPSBfc291cmNlID8gbmV3IFNvdXJjZSgnJywgX3NvdXJjZSkgOiBTT1VSQ0UoKTtcblxuICAgIHJldHVybiBTb3VyY2VTcGFuLmZvckhic0xvYyhzb3VyY2UsIHtcbiAgICAgIHN0YXJ0OiB7XG4gICAgICAgIGxpbmU6IHN0YXJ0TGluZSxcbiAgICAgICAgY29sdW1uOiBzdGFydENvbHVtbixcbiAgICAgIH0sXG4gICAgICBlbmQ6IHtcbiAgICAgICAgbGluZTogZW5kTGluZSxcbiAgICAgICAgY29sdW1uOiBlbmRDb2x1bW4sXG4gICAgICB9LFxuICAgIH0pO1xuICB9XG59XG5cbmV4cG9ydCBkZWZhdWx0IHtcbiAgbXVzdGFjaGU6IGJ1aWxkTXVzdGFjaGUsXG4gIGJsb2NrOiBidWlsZEJsb2NrLFxuICBwYXJ0aWFsOiBidWlsZFBhcnRpYWwsXG4gIGNvbW1lbnQ6IGJ1aWxkQ29tbWVudCxcbiAgbXVzdGFjaGVDb21tZW50OiBidWlsZE11c3RhY2hlQ29tbWVudCxcbiAgZWxlbWVudDogYnVpbGRFbGVtZW50LFxuICBlbGVtZW50TW9kaWZpZXI6IGJ1aWxkRWxlbWVudE1vZGlmaWVyLFxuICBhdHRyOiBidWlsZEF0dHIsXG4gIHRleHQ6IGJ1aWxkVGV4dCxcbiAgc2V4cHI6IGJ1aWxkU2V4cHIsXG5cbiAgY29uY2F0OiBidWlsZENvbmNhdCxcbiAgaGFzaDogYnVpbGRIYXNoLFxuICBwYWlyOiBidWlsZFBhaXIsXG4gIGxpdGVyYWw6IGJ1aWxkTGl0ZXJhbCxcbiAgcHJvZ3JhbTogYnVpbGRQcm9ncmFtLFxuICBibG9ja0l0c2VsZjogYnVpbGRCbG9ja0l0c2VsZixcbiAgdGVtcGxhdGU6IGJ1aWxkVGVtcGxhdGUsXG4gIGxvYzogYnVpbGRMb2MsXG4gIHBvczogYnVpbGRQb3NpdGlvbixcblxuICBwYXRoOiBidWlsZFBhdGgsXG5cbiAgZnVsbFBhdGg6IGJ1aWxkQ2xlYW5QYXRoLFxuICBoZWFkOiBidWlsZEhlYWRGcm9tU3RyaW5nLFxuICBhdDogYnVpbGRBdE5hbWUsXG4gIHZhcjogYnVpbGRWYXIsXG4gIHRoaXM6IGJ1aWxkVGhpcyxcbiAgYmxvY2tOYW1lOiBidWlsZE5hbWVkQmxvY2tOYW1lLFxuXG4gIHN0cmluZzogbGl0ZXJhbCgnU3RyaW5nTGl0ZXJhbCcpIGFzICh2YWx1ZTogc3RyaW5nKSA9PiBBU1R2MS5TdHJpbmdMaXRlcmFsLFxuICBib29sZWFuOiBsaXRlcmFsKCdCb29sZWFuTGl0ZXJhbCcpIGFzICh2YWx1ZTogYm9vbGVhbikgPT4gQVNUdjEuQm9vbGVhbkxpdGVyYWwsXG4gIG51bWJlcjogbGl0ZXJhbCgnTnVtYmVyTGl0ZXJhbCcpIGFzICh2YWx1ZTogbnVtYmVyKSA9PiBBU1R2MS5OdW1iZXJMaXRlcmFsLFxuICB1bmRlZmluZWQoKTogQVNUdjEuVW5kZWZpbmVkTGl0ZXJhbCB7XG4gICAgcmV0dXJuIGJ1aWxkTGl0ZXJhbCgnVW5kZWZpbmVkTGl0ZXJhbCcsIHVuZGVmaW5lZCk7XG4gIH0sXG4gIG51bGwoKTogQVNUdjEuTnVsbExpdGVyYWwge1xuICAgIHJldHVybiBidWlsZExpdGVyYWwoJ051bGxMaXRlcmFsJywgbnVsbCk7XG4gIH0sXG59O1xuXG50eXBlIEJ1aWxkTGl0ZXJhbDxUIGV4dGVuZHMgQVNUdjEuTGl0ZXJhbD4gPSAodmFsdWU6IFRbJ3ZhbHVlJ10pID0+IFQ7XG5cbmZ1bmN0aW9uIGxpdGVyYWw8VCBleHRlbmRzIEFTVHYxLkxpdGVyYWw+KHR5cGU6IFRbJ3R5cGUnXSk6IEJ1aWxkTGl0ZXJhbDxUPiB7XG4gIHJldHVybiBmdW5jdGlvbiAodmFsdWU6IFRbJ3ZhbHVlJ10sIGxvYz86IFNvdXJjZUxvY2F0aW9uKTogVCB7XG4gICAgcmV0dXJuIGJ1aWxkTGl0ZXJhbCh0eXBlLCB2YWx1ZSwgbG9jKTtcbiAgfTtcbn1cbiJdLCJzb3VyY2VSb290IjoiIn0=
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3BhY2thZ2VzL0BnbGltbWVyL3N5bnRheC9saWIvdjEvcHVibGljLWJ1aWxkZXJzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7Ozs7QUFFQTs7QUFFQTs7QUFDQTs7QUFDQTs7QUFFQTs7QUFFQSxJQUFBLE9BQUE7O0FBRUEsU0FBQSxNQUFBLEdBQWU7QUFDYixNQUFJLENBQUosT0FBQSxFQUFjO0FBQ1osSUFBQSxPQUFPLEdBQUcsSUFBQSxlQUFBLENBQUEsRUFBQSxFQUFWLGFBQVUsQ0FBVjtBQUNEOztBQUVELFNBQUEsT0FBQTtBQUNEOztBQVNELFNBQUEsYUFBQSxDQUFBLElBQUEsRUFBQSxNQUFBLEVBQUEsSUFBQSxFQUFBLEdBQUEsRUFBQSxHQUFBLEVBQUEsS0FBQSxFQU0wQjtBQUV4QixNQUFJLE9BQUEsSUFBQSxLQUFKLFFBQUEsRUFBOEI7QUFDNUIsSUFBQSxJQUFJLEdBQUcsU0FBUyxDQUFoQixJQUFnQixDQUFoQjtBQUNEOztBQUVELFNBQU87QUFDTCxJQUFBLElBQUksRUFEQyxtQkFBQTtBQUVMLElBQUEsSUFGSyxFQUFBLElBQUE7QUFHTCxJQUFBLE1BQU0sRUFBRSxNQUFNLElBSFQsRUFBQTtBQUlMLElBQUEsSUFBSSxFQUFFLElBQUksSUFBSSxTQUFTLENBSmxCLEVBSWtCLENBSmxCO0FBS0wsSUFBQSxPQUFPLEVBQUUsQ0FMSixHQUFBO0FBTUwsSUFBQSxRQUFRLEVBQUUsQ0FBQyxDQU5OLEdBQUE7QUFPTCxJQUFBLEdBQUcsRUFBRSxRQUFRLENBQUMsR0FBRyxJQVBaLElBT1EsQ0FQUjtBQVFMLElBQUEsS0FBSyxFQUFFLEtBQUssSUFBSTtBQUFFLE1BQUEsSUFBSSxFQUFOLEtBQUE7QUFBZSxNQUFBLEtBQUssRUFBRTtBQUF0QjtBQVJYLEdBQVA7QUFVRDs7QUFFRCxTQUFBLFVBQUEsQ0FBQSxJQUFBLEVBQUEsTUFBQSxFQUFBLElBQUEsRUFBQSxhQUFBLEVBQUEsVUFBQSxFQUFBLEdBQUEs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RUFBRSxPQUFPLENBakNGLGVBaUNFLENBakNGO0FBa0NiLEVBQUEsU0FsQ2EsRUFBQSxVQUFBLFVBQUEsRUFBQTtBQUFBLGFBQUEsU0FBQSxHQUFBO0FBQUEsYUFBQSxVQUFBLENBQUEsS0FBQSxDQUFBLElBQUEsRUFBQSxTQUFBLENBQUE7QUFBQTs7QUFBQSxJQUFBLFNBQUEsQ0FBQSxRQUFBLEdBQUEsWUFBQTtBQUFBLGFBQUEsVUFBQSxDQUFBLFFBQUEsRUFBQTtBQUFBLEtBQUE7O0FBQUEsV0FBQSxTQUFBO0FBQUEsR0FBQSxDQUFBLFlBa0NKO0FBQ1AsV0FBTyxZQUFZLENBQUEsa0JBQUEsRUFBbkIsU0FBbUIsQ0FBbkI7QUFuQ1csR0FBQSxDQUFBO0FBQUEsVUFBQSxTQUFBLEtBQUEsR0FxQ1Q7QUFDRixXQUFPLFlBQVksQ0FBQSxhQUFBLEVBQW5CLElBQW1CLENBQW5CO0FBQ0Q7QUF2Q1ksQzs7O0FBNENmLFNBQUEsT0FBQSxDQUFBLElBQUEsRUFBeUQ7QUFDdkQsU0FBTyxVQUFBLEtBQUEsRUFBQSxHQUFBLEVBQWlEO0FBQ3RELFdBQU8sWUFBWSxDQUFBLElBQUEsRUFBQSxLQUFBLEVBQW5CLEdBQW1CLENBQW5CO0FBREYsR0FBQTtBQUdEIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgRGljdCwgT3B0aW9uIH0gZnJvbSAnQGdsaW1tZXIvaW50ZXJmYWNlcyc7XG5pbXBvcnQgeyBMT0NBTF9ERUJVRyB9IGZyb20gJ0BnbGltbWVyL2xvY2FsLWRlYnVnLWZsYWdzJztcbmltcG9ydCB7IGFzc2VydCwgYXNzaWduLCBkZXByZWNhdGUsIGlzUHJlc2VudCB9IGZyb20gJ0BnbGltbWVyL3V0aWwnO1xuXG5pbXBvcnQgeyBTb3VyY2VMb2NhdGlvbiwgU291cmNlUG9zaXRpb24sIFNZTlRIRVRJQ19MT0NBVElPTiB9IGZyb20gJy4uL3NvdXJjZS9sb2NhdGlvbic7XG5pbXBvcnQgeyBTb3VyY2UgfSBmcm9tICcuLi9zb3VyY2Uvc291cmNlJztcbmltcG9ydCB7IFNvdXJjZVNwYW4gfSBmcm9tICcuLi9zb3VyY2Uvc3Bhbic7XG5pbXBvcnQgKiBhcyBBU1R2MSBmcm9tICcuL2FwaSc7XG5pbXBvcnQgeyBQYXRoRXhwcmVzc2lvbkltcGxWMSB9IGZyb20gJy4vbGVnYWN5LWludGVyb3AnO1xuXG5sZXQgX1NPVVJDRTogU291cmNlIHwgdW5kZWZpbmVkO1xuXG5mdW5jdGlvbiBTT1VSQ0UoKTogU291cmNlIHtcbiAgaWYgKCFfU09VUkNFKSB7XG4gICAgX1NPVVJDRSA9IG5ldyBTb3VyY2UoJycsICcoc3ludGhldGljKScpO1xuICB9XG5cbiAgcmV0dXJuIF9TT1VSQ0U7XG59XG5cbi8vIGNvbnN0IFNPVVJDRSA9IG5ldyBTb3VyY2UoJycsICcodGVzdHMpJyk7XG5cbi8vIFN0YXRlbWVudHNcblxuZXhwb3J0IHR5cGUgQnVpbGRlckhlYWQgPSBzdHJpbmcgfCBBU1R2MS5FeHByZXNzaW9uO1xuZXhwb3J0IHR5cGUgVGFnRGVzY3JpcHRvciA9IHN0cmluZyB8IHsgbmFtZTogc3RyaW5nOyBzZWxmQ2xvc2luZzogYm9vbGVhbiB9O1xuXG5mdW5jdGlvbiBidWlsZE11c3RhY2hlKFxuICBwYXRoOiBCdWlsZGVySGVhZCB8IEFTVHYxLkxpdGVyYWwsXG4gIHBhcmFtcz86IEFTVHYxLkV4cHJlc3Npb25bXSxcbiAgaGFzaD86IEFTVHYxLkhhc2gsXG4gIHJhdz86IGJvb2xlYW4sXG4gIGxvYz86IFNvdXJjZUxvY2F0aW9uLFxuICBzdHJpcD86IEFTVHYxLlN0cmlwRmxhZ3Ncbik6IEFTVHYxLk11c3RhY2hlU3RhdGVtZW50IHtcbiAgaWYgKHR5cGVvZiBwYXRoID09PSAnc3RyaW5nJykge1xuICAgIHBhdGggPSBidWlsZFBhdGgocGF0aCk7XG4gIH1cblxuICByZXR1cm4ge1xuICAgIHR5cGU6ICdNdXN0YWNoZVN0YXRlbWVudCcsXG4gICAgcGF0aCxcbiAgICBwYXJhbXM6IHBhcmFtcyB8fCBbXSxcbiAgICBoYXNoOiBoYXNoIHx8IGJ1aWxkSGFzaChbXSksXG4gICAgZXNjYXBlZDogIXJhdyxcbiAgICB0cnVzdGluZzogISFyYXcsXG4gICAgbG9jOiBidWlsZExvYyhsb2MgfHwgbnVsbCksXG4gICAgc3RyaXA6IHN0cmlwIHx8IHsgb3BlbjogZmFsc2UsIGNsb3NlOiBmYWxzZSB9LFxuICB9O1xufVxuXG5mdW5jdGlvbiBidWlsZEJsb2NrKFxuICBwYXRoOiBCdWlsZGVySGVhZCxcbiAgcGFyYW1zOiBPcHRpb248QVNUdjEuRXhwcmVzc2lvbltdPixcbiAgaGFzaDogT3B0aW9uPEFTVHYxLkhhc2g+LFxuICBfZGVmYXVsdEJsb2NrOiBBU1R2MS5Qb3NzaWJseURlcHJlY2F0ZWRCbG9jayxcbiAgX2Vsc2VCbG9jaz86IE9wdGlvbjxBU1R2MS5Qb3NzaWJseURlcHJlY2F0ZWRCbG9jaz4sXG4gIGxvYz86IFNvdXJjZUxvY2F0aW9uLFxuICBvcGVuU3RyaXA/OiBBU1R2MS5TdHJpcEZsYWdzLFxuICBpbnZlcnNlU3RyaXA/OiBBU1R2MS5TdHJpcEZsYWdzLFxuICBjbG9zZVN0cmlwPzogQVNUdjEuU3RyaXBGbGFnc1xuKTogQVNUdjEuQmxvY2tTdGF0ZW1lbnQge1xuICBsZXQgZGVmYXVsdEJsb2NrOiBBU1R2MS5CbG9jaztcbiAgbGV0IGVsc2VCbG9jazogT3B0aW9uPEFTVHYxLkJsb2NrPiB8IHVuZGVmaW5lZDtcblxuICBpZiAoX2RlZmF1bHRCbG9jay50eXBlID09PSAnVGVtcGxhdGUnKSB7XG4gICAgaWYgKExPQ0FMX0RFQlVHKSB7XG4gICAgICBkZXByZWNhdGUoYGIucHJvZ3JhbSBpcyBkZXByZWNhdGVkLiBVc2UgYi5ibG9ja0l0c2VsZiBpbnN0ZWFkLmApO1xuICAgIH1cblxuICAgIGRlZmF1bHRCbG9jayA9IChhc3NpZ24oe30sIF9kZWZhdWx0QmxvY2ssIHsgdHlwZTogJ0Jsb2NrJyB9KSBhcyB1bmtub3duKSBhcyBBU1R2MS5CbG9jaztcbiAgfSBlbHNlIHtcbiAgICBkZWZhdWx0QmxvY2sgPSBfZGVmYXVsdEJsb2NrO1xuICB9XG5cbiAgaWYgKF9lbHNlQmxvY2sgIT09IHVuZGVmaW5lZCAmJiBfZWxzZUJsb2NrICE9PSBudWxsICYmIF9lbHNlQmxvY2sudHlwZSA9PT0gJ1RlbXBsYXRlJykge1xuICAgIGlmIChMT0NBTF9ERUJVRykge1xuICAgICAgZGVwcmVjYXRlKGBiLnByb2dyYW0gaXMgZGVwcmVjYXRlZC4gVXNlIGIuYmxvY2tJdHNlbGYgaW5zdGVhZC5gKTtcbiAgICB9XG5cbiAgICBlbHNlQmxvY2sgPSAoYXNzaWduKHt9LCBfZWxzZUJsb2NrLCB7IHR5cGU6ICdCbG9jaycgfSkgYXMgdW5rbm93bikgYXMgQVNUdjEuQmxvY2s7XG4gIH0gZWxzZSB7XG4gICAgZWxzZUJsb2NrID0gX2Vsc2VCbG9jaztcbiAgfVxuXG4gIHJldHVybiB7XG4gICAgdHlwZTogJ0Jsb2NrU3RhdGVtZW50JyxcbiAgICBwYXRoOiBidWlsZFBhdGgocGF0aCksXG4gICAgcGFyYW1zOiBwYXJhbXMgfHwgW10sXG4gICAgaGFzaDogaGFzaCB8fCBidWlsZEhhc2goW10pLFxuICAgIHByb2dyYW06IGRlZmF1bHRCbG9jayB8fCBudWxsLFxuICAgIGludmVyc2U6IGVsc2VCbG9jayB8fCBudWxsLFxuICAgIGxvYzogYnVpbGRMb2MobG9jIHx8IG51bGwpLFxuICAgIG9wZW5TdHJpcDogb3BlblN0cmlwIHx8IHsgb3BlbjogZmFsc2UsIGNsb3NlOiBmYWxzZSB9LFxuICAgIGludmVyc2VTdHJpcDogaW52ZXJzZVN0cmlwIHx8IHsgb3BlbjogZmFsc2UsIGNsb3NlOiBmYWxzZSB9LFxuICAgIGNsb3NlU3RyaXA6IGNsb3NlU3RyaXAgfHwgeyBvcGVuOiBmYWxzZSwgY2xvc2U6IGZhbHNlIH0sXG4gIH07XG59XG5cbmZ1bmN0aW9uIGJ1aWxkRWxlbWVudE1vZGlmaWVyKFxuICBwYXRoOiBCdWlsZGVySGVhZCB8IEFTVHYxLkV4cHJlc3Npb24sXG4gIHBhcmFtcz86IEFTVHYxLkV4cHJlc3Npb25bXSxcbiAgaGFzaD86IEFTVHYxLkhhc2gsXG4gIGxvYz86IE9wdGlvbjxTb3VyY2VMb2NhdGlvbj5cbik6IEFTVHYxLkVsZW1lbnRNb2RpZmllclN0YXRlbWVudCB7XG4gIHJldHVybiB7XG4gICAgdHlwZTogJ0VsZW1lbnRNb2RpZmllclN0YXRlbWVudCcsXG4gICAgcGF0aDogYnVpbGRQYXRoKHBhdGgpLFxuICAgIHBhcmFtczogcGFyYW1zIHx8IFtdLFxuICAgIGhhc2g6IGhhc2ggfHwgYnVpbGRIYXNoKFtdKSxcbiAgICBsb2M6IGJ1aWxkTG9jKGxvYyB8fCBudWxsKSxcbiAgfTtcbn1cblxuZnVuY3Rpb24gYnVpbGRQYXJ0aWFsKFxuICBuYW1lOiBBU1R2MS5QYXRoRXhwcmVzc2lvbixcbiAgcGFyYW1zPzogQVNUdjEuRXhwcmVzc2lvbltdLFxuICBoYXNoPzogQVNUdjEuSGFzaCxcbiAgaW5kZW50Pzogc3RyaW5nLFxuICBsb2M/OiBTb3VyY2VMb2NhdGlvblxuKTogQVNUdjEuUGFydGlhbFN0YXRlbWVudCB7XG4gIHJldHVybiB7XG4gICAgdHlwZTogJ1BhcnRpYWxTdGF0ZW1lbnQnLFxuICAgIG5hbWU6IG5hbWUsXG4gICAgcGFyYW1zOiBwYXJhbXMgfHwgW10sXG4gICAgaGFzaDogaGFzaCB8fCBidWlsZEhhc2goW10pLFxuICAgIGluZGVudDogaW5kZW50IHx8ICcnLFxuICAgIHN0cmlwOiB7IG9wZW46IGZhbHNlLCBjbG9zZTogZmFsc2UgfSxcbiAgICBsb2M6IGJ1aWxkTG9jKGxvYyB8fCBudWxsKSxcbiAgfTtcbn1cblxuZnVuY3Rpb24gYnVpbGRDb21tZW50KHZhbHVlOiBzdHJpbmcsIGxvYz86IFNvdXJjZUxvY2F0aW9uKTogQVNUdjEuQ29tbWVudFN0YXRlbWVudCB7XG4gIHJldHVybiB7XG4gICAgdHlwZTogJ0NvbW1lbnRTdGF0ZW1lbnQnLFxuICAgIHZhbHVlOiB2YWx1ZSxcbiAgICBsb2M6IGJ1aWxkTG9jKGxvYyB8fCBudWxsKSxcbiAgfTtcbn1cblxuZnVuY3Rpb24gYnVpbGRNdXN0YWNoZUNvbW1lbnQodmFsdWU6IHN0cmluZywgbG9jPzogU291cmNlTG9jYXRpb24pOiBBU1R2MS5NdXN0YWNoZUNvbW1lbnRTdGF0ZW1lbnQge1xuICByZXR1cm4ge1xuICAgIHR5cGU6ICdNdXN0YWNoZUNvbW1lbnRTdGF0ZW1lbnQnLFxuICAgIHZhbHVlOiB2YWx1ZSxcbiAgICBsb2M6IGJ1aWxkTG9jKGxvYyB8fCBudWxsKSxcbiAgfTtcbn1cblxuZnVuY3Rpb24gYnVpbGRDb25jYXQoXG4gIHBhcnRzOiAoQVNUdjEuVGV4dE5vZGUgfCBBU1R2MS5NdXN0YWNoZVN0YXRlbWVudClbXSxcbiAgbG9jPzogU291cmNlTG9jYXRpb25cbik6IEFTVHYxLkNvbmNhdFN0YXRlbWVudCB7XG4gIGlmICghaXNQcmVzZW50KHBhcnRzKSkge1xuICAgIHRocm93IG5ldyBFcnJvcihgYi5jb25jYXQgcmVxdWlyZXMgYXQgbGVhc3Qgb25lIHBhcnRgKTtcbiAgfVxuXG4gIHJldHVybiB7XG4gICAgdHlwZTogJ0NvbmNhdFN0YXRlbWVudCcsXG4gICAgcGFydHM6IHBhcnRzIHx8IFtdLFxuICAgIGxvYzogYnVpbGRMb2MobG9jIHx8IG51bGwpLFxuICB9O1xufVxuXG4vLyBOb2Rlc1xuXG5leHBvcnQgdHlwZSBFbGVtZW50UGFydHMgPVxuICB8IFsnYXR0cnMnLCAuLi5BdHRyU2V4cFtdXVxuICB8IFsnbW9kaWZpZXJzJywgLi4uTW9kaWZpZXJTZXhwW11dXG4gIHwgWydib2R5JywgLi4uQVNUdjEuU3RhdGVtZW50W11dXG4gIHwgWydjb21tZW50cycsIC4uLkVsZW1lbnRDb21tZW50W11dXG4gIHwgWydhcycsIC4uLnN0cmluZ1tdXVxuICB8IFsnbG9jJywgU291cmNlTG9jYXRpb25dO1xuXG5leHBvcnQgdHlwZSBQYXRoU2V4cCA9IHN0cmluZyB8IFsncGF0aCcsIHN0cmluZywgTG9jU2V4cD9dO1xuXG5leHBvcnQgdHlwZSBNb2RpZmllclNleHAgPVxuICB8IHN0cmluZ1xuICB8IFtQYXRoU2V4cCwgTG9jU2V4cD9dXG4gIHwgW1BhdGhTZXhwLCBBU1R2MS5FeHByZXNzaW9uW10sIExvY1NleHA/XVxuICB8IFtQYXRoU2V4cCwgQVNUdjEuRXhwcmVzc2lvbltdLCBEaWN0PEFTVHYxLkV4cHJlc3Npb24+LCBMb2NTZXhwP107XG5cbmV4cG9ydCB0eXBlIEF0dHJTZXhwID0gW3N0cmluZywgQVNUdjEuQXR0ck5vZGVbJ3ZhbHVlJ10gfCBzdHJpbmcsIExvY1NleHA/XTtcblxuZXhwb3J0IHR5cGUgTG9jU2V4cCA9IFsnbG9jJywgU291cmNlTG9jYXRpb25dO1xuXG5leHBvcnQgdHlwZSBFbGVtZW50Q29tbWVudCA9IEFTVHYxLk11c3RhY2hlQ29tbWVudFN0YXRlbWVudCB8IFNvdXJjZUxvY2F0aW9uIHwgc3RyaW5nO1xuXG5leHBvcnQgdHlwZSBTZXhwVmFsdWUgPVxuICB8IHN0cmluZ1xuICB8IEFTVHYxLkV4cHJlc3Npb25bXVxuICB8IERpY3Q8QVNUdjEuRXhwcmVzc2lvbj5cbiAgfCBMb2NTZXhwXG4gIHwgUGF0aFNleHBcbiAgfCB1bmRlZmluZWQ7XG5cbmV4cG9ydCBpbnRlcmZhY2UgQnVpbGRFbGVtZW50T3B0aW9ucyB7XG4gIGF0dHJzPzogQVNUdjEuQXR0ck5vZGVbXTtcbiAgbW9kaWZpZXJzPzogQVNUdjEuRWxlbWVudE1vZGlmaWVyU3RhdGVtZW50W107XG4gIGNoaWxkcmVuPzogQVNUdjEuU3RhdGVtZW50W107XG4gIGNvbW1lbnRzPzogRWxlbWVudENvbW1lbnRbXTtcbiAgYmxvY2tQYXJhbXM/OiBzdHJpbmdbXTtcbiAgbG9jPzogU291cmNlU3Bhbjtcbn1cblxuZnVuY3Rpb24gYnVpbGRFbGVtZW50KHRhZzogVGFnRGVzY3JpcHRvciwgb3B0aW9uczogQnVpbGRFbGVtZW50T3B0aW9ucyA9IHt9KTogQVNUdjEuRWxlbWVudE5vZGUge1xuICBsZXQgeyBhdHRycywgYmxvY2tQYXJhbXMsIG1vZGlmaWVycywgY29tbWVudHMsIGNoaWxkcmVuLCBsb2MgfSA9IG9wdGlvbnM7XG5cbiAgbGV0IHRhZ05hbWU6IHN0cmluZztcblxuICAvLyB0aGlzIGlzIHVzZWQgZm9yIGJhY2t3YXJkcyBjb21wYXQsIHByaW9yIHRvIGBzZWxmQ2xvc2luZ2AgYmVpbmcgcGFydCBvZiB0aGUgRWxlbWVudE5vZGUgQVNUXG4gIGxldCBzZWxmQ2xvc2luZyA9IGZhbHNlO1xuICBpZiAodHlwZW9mIHRhZyA9PT0gJ29iamVjdCcpIHtcbiAgICBzZWxmQ2xvc2luZyA9IHRhZy5zZWxmQ2xvc2luZztcbiAgICB0YWdOYW1lID0gdGFnLm5hbWU7XG4gIH0gZWxzZSBpZiAodGFnLnNsaWNlKC0xKSA9PT0gJy8nKSB7XG4gICAgdGFnTmFtZSA9IHRhZy5zbGljZSgwLCAtMSk7XG4gICAgc2VsZkNsb3NpbmcgPSB0cnVlO1xuICB9IGVsc2Uge1xuICAgIHRhZ05hbWUgPSB0YWc7XG4gIH1cblxuICByZXR1cm4ge1xuICAgIHR5cGU6ICdFbGVtZW50Tm9kZScsXG4gICAgdGFnOiB0YWdOYW1lLFxuICAgIHNlbGZDbG9zaW5nOiBzZWxmQ2xvc2luZyxcbiAgICBhdHRyaWJ1dGVzOiBhdHRycyB8fCBbXSxcbiAgICBibG9ja1BhcmFtczogYmxvY2tQYXJhbXMgfHwgW10sXG4gICAgbW9kaWZpZXJzOiBtb2RpZmllcnMgfHwgW10sXG4gICAgY29tbWVudHM6IChjb21tZW50cyBhcyBBU1R2MS5NdXN0YWNoZUNvbW1lbnRTdGF0ZW1lbnRbXSkgfHwgW10sXG4gICAgY2hpbGRyZW46IGNoaWxkcmVuIHx8IFtdLFxuICAgIGxvYzogYnVpbGRMb2MobG9jIHx8IG51bGwpLFxuICB9O1xufVxuXG5mdW5jdGlvbiBidWlsZEF0dHIoXG4gIG5hbWU6IHN0cmluZyxcbiAgdmFsdWU6IEFTVHYxLkF0dHJOb2RlWyd2YWx1ZSddLFxuICBsb2M/OiBTb3VyY2VMb2NhdGlvblxuKTogQVNUdjEuQXR0ck5vZGUge1xuICByZXR1cm4ge1xuICAgIHR5cGU6ICdBdHRyTm9kZScsXG4gICAgbmFtZTogbmFtZSxcbiAgICB2YWx1ZTogdmFsdWUsXG4gICAgbG9jOiBidWlsZExvYyhsb2MgfHwgbnVsbCksXG4gIH07XG59XG5cbmZ1bmN0aW9uIGJ1aWxkVGV4dChjaGFycz86IHN0cmluZywgbG9jPzogU291cmNlTG9jYXRpb24pOiBBU1R2MS5UZXh0Tm9kZSB7XG4gIHJldHVybiB7XG4gICAgdHlwZTogJ1RleHROb2RlJyxcbiAgICBjaGFyczogY2hhcnMgfHwgJycsXG4gICAgbG9jOiBidWlsZExvYyhsb2MgfHwgbnVsbCksXG4gIH07XG59XG5cbi8vIEV4cHJlc3Npb25zXG5cbmZ1bmN0aW9uIGJ1aWxkU2V4cHIoXG4gIHBhdGg6IEJ1aWxkZXJIZWFkLFxuICBwYXJhbXM/OiBBU1R2MS5FeHByZXNzaW9uW10sXG4gIGhhc2g/OiBBU1R2MS5IYXNoLFxuICBsb2M/OiBTb3VyY2VMb2NhdGlvblxuKTogQVNUdjEuU3ViRXhwcmVzc2lvbiB7XG4gIHJldHVybiB7XG4gICAgdHlwZTogJ1N1YkV4cHJlc3Npb24nLFxuICAgIHBhdGg6IGJ1aWxkUGF0aChwYXRoKSxcbiAgICBwYXJhbXM6IHBhcmFtcyB8fCBbXSxcbiAgICBoYXNoOiBoYXNoIHx8IGJ1aWxkSGFzaChbXSksXG4gICAgbG9jOiBidWlsZExvYyhsb2MgfHwgbnVsbCksXG4gIH07XG59XG5cbmZ1bmN0aW9uIGhlYWRUb1N0cmluZyhoZWFkOiBBU1R2MS5QYXRoSGVhZCk6IHsgb3JpZ2luYWw6IHN0cmluZzsgcGFydHM6IHN0cmluZ1tdIH0ge1xuICBzd2l0Y2ggKGhlYWQudHlwZSkge1xuICAgIGNhc2UgJ0F0SGVhZCc6XG4gICAgICByZXR1cm4geyBvcmlnaW5hbDogaGVhZC5uYW1lLCBwYXJ0czogW2hlYWQubmFtZV0gfTtcbiAgICBjYXNlICdUaGlzSGVhZCc6XG4gICAgICByZXR1cm4geyBvcmlnaW5hbDogYHRoaXNgLCBwYXJ0czogW10gfTtcbiAgICBjYXNlICdWYXJIZWFkJzpcbiAgICAgIHJldHVybiB7IG9yaWdpbmFsOiBoZWFkLm5hbWUsIHBhcnRzOiBbaGVhZC5uYW1lXSB9O1xuICB9XG59XG5cbmZ1bmN0aW9uIGJ1aWxkSGVhZChcbiAgb3JpZ2luYWw6IHN0cmluZyxcbiAgbG9jOiBTb3VyY2VMb2NhdGlvblxuKTogeyBoZWFkOiBBU1R2MS5QYXRoSGVhZDsgdGFpbDogc3RyaW5nW10gfSB7XG4gIGxldCBbaGVhZCwgLi4udGFpbF0gPSBvcmlnaW5hbC5zcGxpdCgnLicpO1xuICBsZXQgaGVhZE5vZGU6IEFTVHYxLlBhdGhIZWFkO1xuXG4gIGlmIChoZWFkID09PSAndGhpcycpIHtcbiAgICBoZWFkTm9kZSA9IHtcbiAgICAgIHR5cGU6ICdUaGlzSGVhZCcsXG4gICAgICBsb2M6IGJ1aWxkTG9jKGxvYyB8fCBudWxsKSxcbiAgICB9O1xuICB9IGVsc2UgaWYgKGhlYWRbMF0gPT09ICdAJykge1xuICAgIGhlYWROb2RlID0ge1xuICAgICAgdHlwZTogJ0F0SGVhZCcsXG4gICAgICBuYW1lOiBoZWFkLFxuICAgICAgbG9jOiBidWlsZExvYyhsb2MgfHwgbnVsbCksXG4gICAgfTtcbiAgfSBlbHNlIHtcbiAgICBoZWFkTm9kZSA9IHtcbiAgICAgIHR5cGU6ICdWYXJIZWFkJyxcbiAgICAgIG5hbWU6IGhlYWQsXG4gICAgICBsb2M6IGJ1aWxkTG9jKGxvYyB8fCBudWxsKSxcbiAgICB9O1xuICB9XG5cbiAgcmV0dXJuIHtcbiAgICBoZWFkOiBoZWFkTm9kZSxcbiAgICB0YWlsLFxuICB9O1xufVxuXG5mdW5jdGlvbiBidWlsZFRoaXMobG9jOiBTb3VyY2VMb2NhdGlvbik6IEFTVHYxLlBhdGhIZWFkIHtcbiAgcmV0dXJuIHtcbiAgICB0eXBlOiAnVGhpc0hlYWQnLFxuICAgIGxvYzogYnVpbGRMb2MobG9jIHx8IG51bGwpLFxuICB9O1xufVxuXG5mdW5jdGlvbiBidWlsZEF0TmFtZShuYW1lOiBzdHJpbmcsIGxvYzogU291cmNlTG9jYXRpb24pOiBBU1R2MS5QYXRoSGVhZCB7XG4gIC8vIHRoZSBgQGAgc2hvdWxkIGJlIGluY2x1ZGVkIHNvIHdlIGhhdmUgYSBjb21wbGV0ZSBzb3VyY2UgcmFuZ2VcbiAgYXNzZXJ0KG5hbWVbMF0gPT09ICdAJywgYGNhbGwgYnVpbGRlcnMuYXQoKSB3aXRoIGEgc3RyaW5nIHRoYXQgc3RhcnRzIHdpdGggJ0AnYCk7XG5cbiAgcmV0dXJuIHtcbiAgICB0eXBlOiAnQXRIZWFkJyxcbiAgICBuYW1lLFxuICAgIGxvYzogYnVpbGRMb2MobG9jIHx8IG51bGwpLFxuICB9O1xufVxuXG5mdW5jdGlvbiBidWlsZFZhcihuYW1lOiBzdHJpbmcsIGxvYzogU291cmNlTG9jYXRpb24pOiBBU1R2MS5QYXRoSGVhZCB7XG4gIGFzc2VydChuYW1lICE9PSAndGhpcycsIGBZb3UgY2FsbGVkIGJ1aWxkZXJzLnZhcigpIHdpdGggJ3RoaXMnLiBDYWxsIGJ1aWxkZXJzLnRoaXMgaW5zdGVhZGApO1xuICBhc3NlcnQoXG4gICAgbmFtZVswXSAhPT0gJ0AnLFxuICAgIGBZb3UgY2FsbGVkIGJ1aWxkZXJzLnZhcigpIHdpdGggJyR7bmFtZX0nLiBDYWxsIGJ1aWxkZXJzLmF0KCcke25hbWV9JykgaW5zdGVhZGBcbiAgKTtcblxuICByZXR1cm4ge1xuICAgIHR5cGU6ICdWYXJIZWFkJyxcbiAgICBuYW1lLFxuICAgIGxvYzogYnVpbGRMb2MobG9jIHx8IG51bGwpLFxuICB9O1xufVxuXG5mdW5jdGlvbiBidWlsZEhlYWRGcm9tU3RyaW5nKGhlYWQ6IHN0cmluZywgbG9jOiBTb3VyY2VMb2NhdGlvbik6IEFTVHYxLlBhdGhIZWFkIHtcbiAgaWYgKGhlYWRbMF0gPT09ICdAJykge1xuICAgIHJldHVybiBidWlsZEF0TmFtZShoZWFkLCBsb2MpO1xuICB9IGVsc2UgaWYgKGhlYWQgPT09ICd0aGlzJykge1xuICAgIHJldHVybiBidWlsZFRoaXMobG9jKTtcbiAgfSBlbHNlIHtcbiAgICByZXR1cm4gYnVpbGRWYXIoaGVhZCwgbG9jKTtcbiAgfVxufVxuXG5mdW5jdGlvbiBidWlsZE5hbWVkQmxvY2tOYW1lKG5hbWU6IHN0cmluZywgbG9jPzogU291cmNlTG9jYXRpb24pOiBBU1R2MS5OYW1lZEJsb2NrTmFtZSB7XG4gIHJldHVybiB7XG4gICAgdHlwZTogJ05hbWVkQmxvY2tOYW1lJyxcbiAgICBuYW1lLFxuICAgIGxvYzogYnVpbGRMb2MobG9jIHx8IG51bGwpLFxuICB9O1xufVxuXG5mdW5jdGlvbiBidWlsZENsZWFuUGF0aChcbiAgaGVhZDogQVNUdjEuUGF0aEhlYWQsXG4gIHRhaWw6IHN0cmluZ1tdLFxuICBsb2M6IFNvdXJjZUxvY2F0aW9uXG4pOiBBU1R2MS5QYXRoRXhwcmVzc2lvbiB7XG4gIGxldCB7IG9yaWdpbmFsOiBvcmlnaW5hbEhlYWQsIHBhcnRzOiBoZWFkUGFydHMgfSA9IGhlYWRUb1N0cmluZyhoZWFkKTtcbiAgbGV0IHBhcnRzID0gWy4uLmhlYWRQYXJ0cywgLi4udGFpbF07XG4gIGxldCBvcmlnaW5hbCA9IFsuLi5vcmlnaW5hbEhlYWQsIC4uLnBhcnRzXS5qb2luKCcuJyk7XG5cbiAgcmV0dXJuIG5ldyBQYXRoRXhwcmVzc2lvbkltcGxWMShvcmlnaW5hbCwgaGVhZCwgdGFpbCwgYnVpbGRMb2MobG9jIHx8IG51bGwpKTtcbn1cblxuZnVuY3Rpb24gYnVpbGRQYXRoKFxuICBwYXRoOiBBU1R2MS5QYXRoRXhwcmVzc2lvbiB8IHN0cmluZyB8IHsgaGVhZDogc3RyaW5nOyB0YWlsOiBzdHJpbmdbXSB9LFxuICBsb2M/OiBTb3VyY2VMb2NhdGlvblxuKTogQVNUdjEuUGF0aEV4cHJlc3Npb247XG5mdW5jdGlvbiBidWlsZFBhdGgocGF0aDogQVNUdjEuRXhwcmVzc2lvbiwgbG9jPzogU291cmNlTG9jYXRpb24pOiBBU1R2MS5FeHByZXNzaW9uO1xuZnVuY3Rpb24gYnVpbGRQYXRoKHBhdGg6IEJ1aWxkZXJIZWFkIHwgQVNUdjEuRXhwcmVzc2lvbiwgbG9jPzogU291cmNlTG9jYXRpb24pOiBBU1R2MS5FeHByZXNzaW9uO1xuZnVuY3Rpb24gYnVpbGRQYXRoKFxuICBwYXRoOiBCdWlsZGVySGVhZCB8IEFTVHYxLkV4cHJlc3Npb24gfCB7IGhlYWQ6IHN0cmluZzsgdGFpbDogc3RyaW5nW10gfSxcbiAgbG9jPzogU291cmNlTG9jYXRpb25cbik6IEFTVHYxLkV4cHJlc3Npb24ge1xuICBpZiAodHlwZW9mIHBhdGggIT09ICdzdHJpbmcnKSB7XG4gICAgaWYgKCd0eXBlJyBpbiBwYXRoKSB7XG4gICAgICByZXR1cm4gcGF0aDtcbiAgICB9IGVsc2Uge1xuICAgICAgbGV0IHsgaGVhZCwgdGFpbCB9ID0gYnVpbGRIZWFkKHBhdGguaGVhZCwgU291cmNlU3Bhbi5icm9rZW4oKSk7XG5cbiAgICAgIGFzc2VydChcbiAgICAgICAgdGFpbC5sZW5ndGggPT09IDAsXG4gICAgICAgIGBidWlsZGVyLnBhdGgoeyBoZWFkLCB0YWlsIH0pIHNob3VsZCBub3QgYmUgY2FsbGVkIHdpdGggYSBoZWFkIHdpdGggZG90cyBpbiBpdGBcbiAgICAgICk7XG5cbiAgICAgIGxldCB7IG9yaWdpbmFsOiBvcmlnaW5hbEhlYWQgfSA9IGhlYWRUb1N0cmluZyhoZWFkKTtcblxuICAgICAgcmV0dXJuIG5ldyBQYXRoRXhwcmVzc2lvbkltcGxWMShcbiAgICAgICAgW29yaWdpbmFsSGVhZCwgLi4udGFpbF0uam9pbignLicpLFxuICAgICAgICBoZWFkLFxuICAgICAgICB0YWlsLFxuICAgICAgICBidWlsZExvYyhsb2MgfHwgbnVsbClcbiAgICAgICk7XG4gICAgfVxuICB9XG5cbiAgbGV0IHsgaGVhZCwgdGFpbCB9ID0gYnVpbGRIZWFkKHBhdGgsIFNvdXJjZVNwYW4uYnJva2VuKCkpO1xuXG4gIHJldHVybiBuZXcgUGF0aEV4cHJlc3Npb25JbXBsVjEocGF0aCwgaGVhZCwgdGFpbCwgYnVpbGRMb2MobG9jIHx8IG51bGwpKTtcbn1cblxuZnVuY3Rpb24gYnVpbGRMaXRlcmFsPFQgZXh0ZW5kcyBBU1R2MS5MaXRlcmFsPihcbiAgdHlwZTogVFsndHlwZSddLFxuICB2YWx1ZTogVFsndmFsdWUnXSxcbiAgbG9jPzogU291cmNlTG9jYXRpb25cbik6IFQge1xuICByZXR1cm4ge1xuICAgIHR5cGUsXG4gICAgdmFsdWUsXG4gICAgb3JpZ2luYWw6IHZhbHVlLFxuICAgIGxvYzogYnVpbGRMb2MobG9jIHx8IG51bGwpLFxuICB9IGFzIFQ7XG59XG5cbi8vIE1pc2NlbGxhbmVvdXNcblxuZnVuY3Rpb24gYnVpbGRIYXNoKHBhaXJzPzogQVNUdjEuSGFzaFBhaXJbXSwgbG9jPzogU291cmNlTG9jYXRpb24pOiBBU1R2MS5IYXNoIHtcbiAgcmV0dXJuIHtcbiAgICB0eXBlOiAnSGFzaCcsXG4gICAgcGFpcnM6IHBhaXJzIHx8IFtdLFxuICAgIGxvYzogYnVpbGRMb2MobG9jIHx8IG51bGwpLFxuICB9O1xufVxuXG5mdW5jdGlvbiBidWlsZFBhaXIoa2V5OiBzdHJpbmcsIHZhbHVlOiBBU1R2MS5FeHByZXNzaW9uLCBsb2M/OiBTb3VyY2VMb2NhdGlvbik6IEFTVHYxLkhhc2hQYWlyIHtcbiAgcmV0dXJuIHtcbiAgICB0eXBlOiAnSGFzaFBhaXInLFxuICAgIGtleToga2V5LFxuICAgIHZhbHVlLFxuICAgIGxvYzogYnVpbGRMb2MobG9jIHx8IG51bGwpLFxuICB9O1xufVxuXG5mdW5jdGlvbiBidWlsZFByb2dyYW0oXG4gIGJvZHk/OiBBU1R2MS5TdGF0ZW1lbnRbXSxcbiAgYmxvY2tQYXJhbXM/OiBzdHJpbmdbXSxcbiAgbG9jPzogU291cmNlTG9jYXRpb25cbik6IEFTVHYxLlRlbXBsYXRlIHtcbiAgcmV0dXJuIHtcbiAgICB0eXBlOiAnVGVtcGxhdGUnLFxuICAgIGJvZHk6IGJvZHkgfHwgW10sXG4gICAgYmxvY2tQYXJhbXM6IGJsb2NrUGFyYW1zIHx8IFtdLFxuICAgIGxvYzogYnVpbGRMb2MobG9jIHx8IG51bGwpLFxuICB9O1xufVxuXG5mdW5jdGlvbiBidWlsZEJsb2NrSXRzZWxmKFxuICBib2R5PzogQVNUdjEuU3RhdGVtZW50W10sXG4gIGJsb2NrUGFyYW1zPzogc3RyaW5nW10sXG4gIGNoYWluZWQgPSBmYWxzZSxcbiAgbG9jPzogU291cmNlTG9jYXRpb25cbik6IEFTVHYxLkJsb2NrIHtcbiAgcmV0dXJuIHtcbiAgICB0eXBlOiAnQmxvY2snLFxuICAgIGJvZHk6IGJvZHkgfHwgW10sXG4gICAgYmxvY2tQYXJhbXM6IGJsb2NrUGFyYW1zIHx8IFtdLFxuICAgIGNoYWluZWQsXG4gICAgbG9jOiBidWlsZExvYyhsb2MgfHwgbnVsbCksXG4gIH07XG59XG5cbmZ1bmN0aW9uIGJ1aWxkVGVtcGxhdGUoXG4gIGJvZHk/OiBBU1R2MS5TdGF0ZW1lbnRbXSxcbiAgYmxvY2tQYXJhbXM/OiBzdHJpbmdbXSxcbiAgbG9jPzogU291cmNlTG9jYXRpb25cbik6IEFTVHYxLlRlbXBsYXRlIHtcbiAgcmV0dXJuIHtcbiAgICB0eXBlOiAnVGVtcGxhdGUnLFxuICAgIGJvZHk6IGJvZHkgfHwgW10sXG4gICAgYmxvY2tQYXJhbXM6IGJsb2NrUGFyYW1zIHx8IFtdLFxuICAgIGxvYzogYnVpbGRMb2MobG9jIHx8IG51bGwpLFxuICB9O1xufVxuXG5mdW5jdGlvbiBidWlsZFBvc2l0aW9uKGxpbmU6IG51bWJlciwgY29sdW1uOiBudW1iZXIpOiBTb3VyY2VQb3NpdGlvbiB7XG4gIHJldHVybiB7XG4gICAgbGluZSxcbiAgICBjb2x1bW4sXG4gIH07XG59XG5cbmZ1bmN0aW9uIGJ1aWxkTG9jKGxvYzogT3B0aW9uPFNvdXJjZUxvY2F0aW9uPik6IFNvdXJjZVNwYW47XG5mdW5jdGlvbiBidWlsZExvYyhcbiAgc3RhcnRMaW5lOiBudW1iZXIsXG4gIHN0YXJ0Q29sdW1uOiBudW1iZXIsXG4gIGVuZExpbmU/OiBudW1iZXIsXG4gIGVuZENvbHVtbj86IG51bWJlcixcbiAgc291cmNlPzogc3RyaW5nXG4pOiBTb3VyY2VTcGFuO1xuXG5mdW5jdGlvbiBidWlsZExvYyguLi5hcmdzOiBhbnlbXSk6IFNvdXJjZVNwYW4ge1xuICBpZiAoYXJncy5sZW5ndGggPT09IDEpIHtcbiAgICBsZXQgbG9jID0gYXJnc1swXTtcblxuICAgIGlmIChsb2MgJiYgdHlwZW9mIGxvYyA9PT0gJ29iamVjdCcpIHtcbiAgICAgIHJldHVybiBTb3VyY2VTcGFuLmZvckhic0xvYyhTT1VSQ0UoKSwgbG9jKTtcbiAgICB9IGVsc2Uge1xuICAgICAgcmV0dXJuIFNvdXJjZVNwYW4uZm9ySGJzTG9jKFNPVVJDRSgpLCBTWU5USEVUSUNfTE9DQVRJT04pO1xuICAgIH1cbiAgfSBlbHNlIHtcbiAgICBsZXQgW3N0YXJ0TGluZSwgc3RhcnRDb2x1bW4sIGVuZExpbmUsIGVuZENvbHVtbiwgX3NvdXJjZV0gPSBhcmdzO1xuICAgIGxldCBzb3VyY2UgPSBfc291cmNlID8gbmV3IFNvdXJjZSgnJywgX3NvdXJjZSkgOiBTT1VSQ0UoKTtcblxuICAgIHJldHVybiBTb3VyY2VTcGFuLmZvckhic0xvYyhzb3VyY2UsIHtcbiAgICAgIHN0YXJ0OiB7XG4gICAgICAgIGxpbmU6IHN0YXJ0TGluZSxcbiAgICAgICAgY29sdW1uOiBzdGFydENvbHVtbixcbiAgICAgIH0sXG4gICAgICBlbmQ6IHtcbiAgICAgICAgbGluZTogZW5kTGluZSxcbiAgICAgICAgY29sdW1uOiBlbmRDb2x1bW4sXG4gICAgICB9LFxuICAgIH0pO1xuICB9XG59XG5cbmV4cG9ydCBkZWZhdWx0IHtcbiAgbXVzdGFjaGU6IGJ1aWxkTXVzdGFjaGUsXG4gIGJsb2NrOiBidWlsZEJsb2NrLFxuICBwYXJ0aWFsOiBidWlsZFBhcnRpYWwsXG4gIGNvbW1lbnQ6IGJ1aWxkQ29tbWVudCxcbiAgbXVzdGFjaGVDb21tZW50OiBidWlsZE11c3RhY2hlQ29tbWVudCxcbiAgZWxlbWVudDogYnVpbGRFbGVtZW50LFxuICBlbGVtZW50TW9kaWZpZXI6IGJ1aWxkRWxlbWVudE1vZGlmaWVyLFxuICBhdHRyOiBidWlsZEF0dHIsXG4gIHRleHQ6IGJ1aWxkVGV4dCxcbiAgc2V4cHI6IGJ1aWxkU2V4cHIsXG5cbiAgY29uY2F0OiBidWlsZENvbmNhdCxcbiAgaGFzaDogYnVpbGRIYXNoLFxuICBwYWlyOiBidWlsZFBhaXIsXG4gIGxpdGVyYWw6IGJ1aWxkTGl0ZXJhbCxcbiAgcHJvZ3JhbTogYnVpbGRQcm9ncmFtLFxuICBibG9ja0l0c2VsZjogYnVpbGRCbG9ja0l0c2VsZixcbiAgdGVtcGxhdGU6IGJ1aWxkVGVtcGxhdGUsXG4gIGxvYzogYnVpbGRMb2MsXG4gIHBvczogYnVpbGRQb3NpdGlvbixcblxuICBwYXRoOiBidWlsZFBhdGgsXG5cbiAgZnVsbFBhdGg6IGJ1aWxkQ2xlYW5QYXRoLFxuICBoZWFkOiBidWlsZEhlYWRGcm9tU3RyaW5nLFxuICBhdDogYnVpbGRBdE5hbWUsXG4gIHZhcjogYnVpbGRWYXIsXG4gIHRoaXM6IGJ1aWxkVGhpcyxcbiAgYmxvY2tOYW1lOiBidWlsZE5hbWVkQmxvY2tOYW1lLFxuXG4gIHN0cmluZzogbGl0ZXJhbCgnU3RyaW5nTGl0ZXJhbCcpIGFzICh2YWx1ZTogc3RyaW5nKSA9PiBBU1R2MS5TdHJpbmdMaXRlcmFsLFxuICBib29sZWFuOiBsaXRlcmFsKCdCb29sZWFuTGl0ZXJhbCcpIGFzICh2YWx1ZTogYm9vbGVhbikgPT4gQVNUdjEuQm9vbGVhbkxpdGVyYWwsXG4gIG51bWJlcjogbGl0ZXJhbCgnTnVtYmVyTGl0ZXJhbCcpIGFzICh2YWx1ZTogbnVtYmVyKSA9PiBBU1R2MS5OdW1iZXJMaXRlcmFsLFxuICB1bmRlZmluZWQoKTogQVNUdjEuVW5kZWZpbmVkTGl0ZXJhbCB7XG4gICAgcmV0dXJuIGJ1aWxkTGl0ZXJhbCgnVW5kZWZpbmVkTGl0ZXJhbCcsIHVuZGVmaW5lZCk7XG4gIH0sXG4gIG51bGwoKTogQVNUdjEuTnVsbExpdGVyYWwge1xuICAgIHJldHVybiBidWlsZExpdGVyYWwoJ051bGxMaXRlcmFsJywgbnVsbCk7XG4gIH0sXG59O1xuXG50eXBlIEJ1aWxkTGl0ZXJhbDxUIGV4dGVuZHMgQVNUdjEuTGl0ZXJhbD4gPSAodmFsdWU6IFRbJ3ZhbHVlJ10pID0+IFQ7XG5cbmZ1bmN0aW9uIGxpdGVyYWw8VCBleHRlbmRzIEFTVHYxLkxpdGVyYWw+KHR5cGU6IFRbJ3R5cGUnXSk6IEJ1aWxkTGl0ZXJhbDxUPiB7XG4gIHJldHVybiBmdW5jdGlvbiAodmFsdWU6IFRbJ3ZhbHVlJ10sIGxvYz86IFNvdXJjZUxvY2F0aW9uKTogVCB7XG4gICAgcmV0dXJuIGJ1aWxkTGl0ZXJhbCh0eXBlLCB2YWx1ZSwgbG9jKTtcbiAgfTtcbn1cbiJdLCJzb3VyY2VSb290IjoiIn0=

@@ -145,3 +145,3 @@ import { assert, assign, deprecate, isPresent } from '@glimmer/util';

function buildElement(tag, options) {
function buildElement(tag, options = {}) {
let {

@@ -473,2 +473,2 @@ attrs,

}
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3BhY2thZ2VzL0BnbGltbWVyL3N5bnRheC9saWIvdjEvcHVibGljLWJ1aWxkZXJzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUVBLFNBQVMsTUFBVCxFQUFpQixNQUFqQixFQUF5QixTQUF6QixFQUFvQyxTQUFwQyxRQUFxRCxlQUFyRDtBQUVBLFNBQXlDLGtCQUF6QyxRQUFtRSxvQkFBbkU7QUFDQSxTQUFTLE1BQVQsUUFBdUIsa0JBQXZCO0FBQ0EsU0FBUyxVQUFULFFBQTJCLGdCQUEzQjtBQUVBLFNBQVMsb0JBQVQsUUFBcUMsa0JBQXJDOztBQUVBLElBQUksT0FBSjs7QUFFQSxTQUFTLE1BQVQsR0FBZTtBQUNiLE1BQUksQ0FBQyxPQUFMLEVBQWM7QUFDWixJQUFBLE9BQU8sR0FBRyxJQUFJLE1BQUosQ0FBVyxFQUFYLEVBQWUsYUFBZixDQUFWO0FBQ0Q7O0FBRUQsU0FBTyxPQUFQO0FBQ0Q7O0FBU0QsU0FBUyxhQUFULENBQ0UsSUFERixFQUVFLE1BRkYsRUFHRSxJQUhGLEVBSUUsR0FKRixFQUtFLEdBTEYsRUFNRSxLQU5GLEVBTTBCO0FBRXhCLE1BQUksT0FBTyxJQUFQLEtBQWdCLFFBQXBCLEVBQThCO0FBQzVCLElBQUEsSUFBSSxHQUFHLFNBQVMsQ0FBQyxJQUFELENBQWhCO0FBQ0Q7O0FBRUQsU0FBTztBQUNMLElBQUEsSUFBSSxFQUFFLG1CQUREO0FBRUwsSUFBQSxJQUZLO0FBR0wsSUFBQSxNQUFNLEVBQUUsTUFBTSxJQUFJLEVBSGI7QUFJTCxJQUFBLElBQUksRUFBRSxJQUFJLElBQUksU0FBUyxDQUFDLEVBQUQsQ0FKbEI7QUFLTCxJQUFBLE9BQU8sRUFBRSxDQUFDLEdBTEw7QUFNTCxJQUFBLFFBQVEsRUFBRSxDQUFDLENBQUMsR0FOUDtBQU9MLElBQUEsR0FBRyxFQUFFLFFBQVEsQ0FBQyxHQUFHLElBQUksSUFBUixDQVBSO0FBUUwsSUFBQSxLQUFLLEVBQUUsS0FBSyxJQUFJO0FBQUUsTUFBQSxJ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RUFBRSxjQXhCRztBQXlCYixFQUFBLElBQUksRUFBRSxtQkF6Qk87QUEwQmIsRUFBQSxFQUFFLEVBQUUsV0ExQlM7QUEyQmIsRUFBQSxHQUFHLEVBQUUsUUEzQlE7QUE0QmIsRUFBQSxJQUFJLEVBQUUsU0E1Qk87QUE2QmIsRUFBQSxTQUFTLEVBQUUsbUJBN0JFO0FBK0JiLEVBQUEsTUFBTSxFQUFFLE9BQU8sQ0FBQyxlQUFELENBL0JGO0FBZ0NiLEVBQUEsT0FBTyxFQUFFLE9BQU8sQ0FBQyxnQkFBRCxDQWhDSDtBQWlDYixFQUFBLE1BQU0sRUFBRSxPQUFPLENBQUMsZUFBRCxDQWpDRjs7QUFrQ2IsRUFBQSxTQUFTLEdBQUE7QUFDUCxXQUFPLFlBQVksQ0FBQyxrQkFBRCxFQUFxQixTQUFyQixDQUFuQjtBQUNELEdBcENZOztBQXFDYixFQUFBLElBQUksR0FBQTtBQUNGLFdBQU8sWUFBWSxDQUFDLGFBQUQsRUFBZ0IsSUFBaEIsQ0FBbkI7QUFDRDs7QUF2Q1ksQ0FBZjs7QUE0Q0EsU0FBUyxPQUFULENBQTBDLElBQTFDLEVBQXlEO0FBQ3ZELFNBQU8sVUFBVSxLQUFWLEVBQTZCLEdBQTdCLEVBQWlEO0FBQ3RELFdBQU8sWUFBWSxDQUFDLElBQUQsRUFBTyxLQUFQLEVBQWMsR0FBZCxDQUFuQjtBQUNELEdBRkQ7QUFHRCIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IERpY3QsIE9wdGlvbiB9IGZyb20gJ0BnbGltbWVyL2ludGVyZmFjZXMnO1xuaW1wb3J0IHsgTE9DQUxfREVCVUcgfSBmcm9tICdAZ2xpbW1lci9sb2NhbC1kZWJ1Zy1mbGFncyc7XG5pbXBvcnQgeyBhc3NlcnQsIGFzc2lnbiwgZGVwcmVjYXRlLCBpc1ByZXNlbnQgfSBmcm9tICdAZ2xpbW1lci91dGlsJztcblxuaW1wb3J0IHsgU291cmNlTG9jYXRpb24sIFNvdXJjZVBvc2l0aW9uLCBTWU5USEVUSUNfTE9DQVRJT04gfSBmcm9tICcuLi9zb3VyY2UvbG9jYXRpb24nO1xuaW1wb3J0IHsgU291cmNlIH0gZnJvbSAnLi4vc291cmNlL3NvdXJjZSc7XG5pbXBvcnQgeyBTb3VyY2VTcGFuIH0gZnJvbSAnLi4vc291cmNlL3NwYW4nO1xuaW1wb3J0ICogYXMgQVNUdjEgZnJvbSAnLi9hcGknO1xuaW1wb3J0IHsgUGF0aEV4cHJlc3Npb25JbXBsVjEgfSBmcm9tICcuL2xlZ2FjeS1pbnRlcm9wJztcblxubGV0IF9TT1VSQ0U6IFNvdXJjZSB8IHVuZGVmaW5lZDtcblxuZnVuY3Rpb24gU09VUkNFKCk6IFNvdXJjZSB7XG4gIGlmICghX1NPVVJDRSkge1xuICAgIF9TT1VSQ0UgPSBuZXcgU291cmNlKCcnLCAnKHN5bnRoZXRpYyknKTtcbiAgfVxuXG4gIHJldHVybiBfU09VUkNFO1xufVxuXG4vLyBjb25zdCBTT1VSQ0UgPSBuZXcgU291cmNlKCcnLCAnKHRlc3RzKScpO1xuXG4vLyBTdGF0ZW1lbnRzXG5cbmV4cG9ydCB0eXBlIEJ1aWxkZXJIZWFkID0gc3RyaW5nIHwgQVNUdjEuRXhwcmVzc2lvbjtcbmV4cG9ydCB0eXBlIFRhZ0Rlc2NyaXB0b3IgPSBzdHJpbmcgfCB7IG5hbWU6IHN0cmluZzsgc2VsZkNsb3Npbmc6IGJvb2xlYW4gfTtcblxuZnVuY3Rpb24gYnVpbGRNdXN0YWNoZShcbiAgcGF0aDogQnVpbGRlckhlYWQgfCBBU1R2MS5MaXRlcmFsLFxuICBwYXJhbXM/OiBBU1R2MS5FeHByZXNzaW9uW10sXG4gIGhhc2g/OiBBU1R2MS5IYXNoLFxuICByYXc/OiBib29sZWFuLFxuICBsb2M/OiBTb3VyY2VMb2NhdGlvbixcbiAgc3RyaXA/OiBBU1R2MS5TdHJpcEZsYWdzXG4pOiBBU1R2MS5NdXN0YWNoZVN0YXRlbWVudCB7XG4gIGlmICh0eXBlb2YgcGF0aCA9PT0gJ3N0cmluZycpIHtcbiAgICBwYXRoID0gYnVpbGRQYXRoKHBhdGgpO1xuICB9XG5cbiAgcmV0dXJuIHtcbiAgICB0eXBlOiAnTXVzdGFjaGVTdGF0ZW1lbnQnLFxuICAgIHBhdGgsXG4gICAgcGFyYW1zOiBwYXJhbXMgfHwgW10sXG4gICAgaGFzaDogaGFzaCB8fCBidWlsZEhhc2goW10pLFxuICAgIGVzY2FwZWQ6ICFyYXcsXG4gICAgdHJ1c3Rpbmc6ICEhcmF3LFxuICAgIGxvYzogYnVpbGRMb2MobG9jIHx8IG51bGwpLFxuICAgIHN0cmlwOiBzdHJpcCB8fCB7IG9wZW46IGZhbHNlLCBjbG9zZTogZmFsc2UgfSxcbiAgfTtcbn1cblxuZnVuY3Rpb24gYnVpbGRCbG9jayhcbiAgcGF0aDogQnVpbGRlckhlYWQsXG4gIHBhcmFtczogT3B0aW9uPEFTVHYxLkV4cHJlc3Npb25bXT4sXG4gIGhhc2g6IE9wdGlvbjxBU1R2MS5IYXNoPixcbiAgX2RlZmF1bHRCbG9jazogQVNUdjEuUG9zc2libHlEZXByZWNhdGVkQmxvY2ssXG4gIF9lbHNlQmxvY2s/OiBPcHRpb248QVNUdjEuUG9zc2libHlEZXByZWNhdGVkQmxvY2s+LFxuICBsb2M/OiBTb3VyY2VMb2NhdGlvbixcbiAgb3BlblN0cmlwPzogQVNUdjEuU3RyaXBGbGFncyxcbiAgaW52ZXJzZVN0cmlwPzogQVNUdjEuU3RyaXBGbGFncyxcbiAgY2xvc2VTdHJpcD86IEFTVHYxLlN0cmlwRmxhZ3Ncbik6IEFTVHYxLkJsb2NrU3RhdGVtZW50IHtcbiAgbGV0IGRlZmF1bHRCbG9jazogQVNUdjEuQmxvY2s7XG4gIGxldCBlbHNlQmxvY2s6IE9wdGlvbjxBU1R2MS5CbG9jaz4gfCB1bmRlZmluZWQ7XG5cbiAgaWYgKF9kZWZhdWx0QmxvY2sudHlwZSA9PT0gJ1RlbXBsYXRlJykge1xuICAgIGlmIChMT0NBTF9ERUJVRykge1xuICAgICAgZGVwcmVjYXRlKGBiLnByb2dyYW0gaXMgZGVwcmVjYXRlZC4gVXNlIGIuYmxvY2tJdHNlbGYgaW5zdGVhZC5gKTtcbiAgICB9XG5cbiAgICBkZWZhdWx0QmxvY2sgPSAoYXNzaWduKHt9LCBfZGVmYXVsdEJsb2NrLCB7IHR5cGU6ICdCbG9jaycgfSkgYXMgdW5rbm93bikgYXMgQVNUdjEuQmxvY2s7XG4gIH0gZWxzZSB7XG4gICAgZGVmYXVsdEJsb2NrID0gX2RlZmF1bHRCbG9jaztcbiAgfVxuXG4gIGlmIChfZWxzZUJsb2NrICE9PSB1bmRlZmluZWQgJiYgX2Vsc2VCbG9jayAhPT0gbnVsbCAmJiBfZWxzZUJsb2NrLnR5cGUgPT09ICdUZW1wbGF0ZScpIHtcbiAgICBpZiAoTE9DQUxfREVCVUcpIHtcbiAgICAgIGRlcHJlY2F0ZShgYi5wcm9ncmFtIGlzIGRlcHJlY2F0ZWQuIFVzZSBiLmJsb2NrSXRzZWxmIGluc3RlYWQuYCk7XG4gICAgfVxuXG4gICAgZWxzZUJsb2NrID0gKGFzc2lnbih7fSwgX2Vsc2VCbG9jaywgeyB0eXBlOiAnQmxvY2snIH0pIGFzIHVua25vd24pIGFzIEFTVHYxLkJsb2NrO1xuICB9IGVsc2Uge1xuICAgIGVsc2VCbG9jayA9IF9lbHNlQmxvY2s7XG4gIH1cblxuICByZXR1cm4ge1xuICAgIHR5cGU6ICdCbG9ja1N0YXRlbWVudCcsXG4gICAgcGF0aDogYnVpbGRQYXRoKHBhdGgpLFxuICAgIHBhcmFtczogcGFyYW1zIHx8IFtdLFxuICAgIGhhc2g6IGhhc2ggfHwgYnVpbGRIYXNoKFtdKSxcbiAgICBwcm9ncmFtOiBkZWZhdWx0QmxvY2sgfHwgbnVsbCxcbiAgICBpbnZlcnNlOiBlbHNlQmxvY2sgfHwgbnVsbCxcbiAgICBsb2M6IGJ1aWxkTG9jKGxvYyB8fCBudWxsKSxcbiAgICBvcGVuU3RyaXA6IG9wZW5TdHJpcCB8fCB7IG9wZW46IGZhbHNlLCBjbG9zZTogZmFsc2UgfSxcbiAgICBpbnZlcnNlU3RyaXA6IGludmVyc2VTdHJpcCB8fCB7IG9wZW46IGZhbHNlLCBjbG9zZTogZmFsc2UgfSxcbiAgICBjbG9zZVN0cmlwOiBjbG9zZVN0cmlwIHx8IHsgb3BlbjogZmFsc2UsIGNsb3NlOiBmYWxzZSB9LFxuICB9O1xufVxuXG5mdW5jdGlvbiBidWlsZEVsZW1lbnRNb2RpZmllcihcbiAgcGF0aDogQnVpbGRlckhlYWQgfCBBU1R2MS5FeHByZXNzaW9uLFxuICBwYXJhbXM/OiBBU1R2MS5FeHByZXNzaW9uW10sXG4gIGhhc2g/OiBBU1R2MS5IYXNoLFxuICBsb2M/OiBPcHRpb248U291cmNlTG9jYXRpb24+XG4pOiBBU1R2MS5FbGVtZW50TW9kaWZpZXJTdGF0ZW1lbnQge1xuICByZXR1cm4ge1xuICAgIHR5cGU6ICdFbGVtZW50TW9kaWZpZXJTdGF0ZW1lbnQnLFxuICAgIHBhdGg6IGJ1aWxkUGF0aChwYXRoKSxcbiAgICBwYXJhbXM6IHBhcmFtcyB8fCBbXSxcbiAgICBoYXNoOiBoYXNoIHx8IGJ1aWxkSGFzaChbXSksXG4gICAgbG9jOiBidWlsZExvYyhsb2MgfHwgbnVsbCksXG4gIH07XG59XG5cbmZ1bmN0aW9uIGJ1aWxkUGFydGlhbChcbiAgbmFtZTogQVNUdjEuUGF0aEV4cHJlc3Npb24sXG4gIHBhcmFtcz86IEFTVHYxLkV4cHJlc3Npb25bXSxcbiAgaGFzaD86IEFTVHYxLkhhc2gsXG4gIGluZGVudD86IHN0cmluZyxcbiAgbG9jPzogU291cmNlTG9jYXRpb25cbik6IEFTVHYxLlBhcnRpYWxTdGF0ZW1lbnQge1xuICByZXR1cm4ge1xuICAgIHR5cGU6ICdQYXJ0aWFsU3RhdGVtZW50JyxcbiAgICBuYW1lOiBuYW1lLFxuICAgIHBhcmFtczogcGFyYW1zIHx8IFtdLFxuICAgIGhhc2g6IGhhc2ggfHwgYnVpbGRIYXNoKFtdKSxcbiAgICBpbmRlbnQ6IGluZGVudCB8fCAnJyxcbiAgICBzdHJpcDogeyBvcGVuOiBmYWxzZSwgY2xvc2U6IGZhbHNlIH0sXG4gICAgbG9jOiBidWlsZExvYyhsb2MgfHwgbnVsbCksXG4gIH07XG59XG5cbmZ1bmN0aW9uIGJ1aWxkQ29tbWVudCh2YWx1ZTogc3RyaW5nLCBsb2M/OiBTb3VyY2VMb2NhdGlvbik6IEFTVHYxLkNvbW1lbnRTdGF0ZW1lbnQge1xuICByZXR1cm4ge1xuICAgIHR5cGU6ICdDb21tZW50U3RhdGVtZW50JyxcbiAgICB2YWx1ZTogdmFsdWUsXG4gICAgbG9jOiBidWlsZExvYyhsb2MgfHwgbnVsbCksXG4gIH07XG59XG5cbmZ1bmN0aW9uIGJ1aWxkTXVzdGFjaGVDb21tZW50KHZhbHVlOiBzdHJpbmcsIGxvYz86IFNvdXJjZUxvY2F0aW9uKTogQVNUdjEuTXVzdGFjaGVDb21tZW50U3RhdGVtZW50IHtcbiAgcmV0dXJuIHtcbiAgICB0eXBlOiAnTXVzdGFjaGVDb21tZW50U3RhdGVtZW50JyxcbiAgICB2YWx1ZTogdmFsdWUsXG4gICAgbG9jOiBidWlsZExvYyhsb2MgfHwgbnVsbCksXG4gIH07XG59XG5cbmZ1bmN0aW9uIGJ1aWxkQ29uY2F0KFxuICBwYXJ0czogKEFTVHYxLlRleHROb2RlIHwgQVNUdjEuTXVzdGFjaGVTdGF0ZW1lbnQpW10sXG4gIGxvYz86IFNvdXJjZUxvY2F0aW9uXG4pOiBBU1R2MS5Db25jYXRTdGF0ZW1lbnQge1xuICBpZiAoIWlzUHJlc2VudChwYXJ0cykpIHtcbiAgICB0aHJvdyBuZXcgRXJyb3IoYGIuY29uY2F0IHJlcXVpcmVzIGF0IGxlYXN0IG9uZSBwYXJ0YCk7XG4gIH1cblxuICByZXR1cm4ge1xuICAgIHR5cGU6ICdDb25jYXRTdGF0ZW1lbnQnLFxuICAgIHBhcnRzOiBwYXJ0cyB8fCBbXSxcbiAgICBsb2M6IGJ1aWxkTG9jKGxvYyB8fCBudWxsKSxcbiAgfTtcbn1cblxuLy8gTm9kZXNcblxuZXhwb3J0IHR5cGUgRWxlbWVudFBhcnRzID1cbiAgfCBbJ2F0dHJzJywgLi4uQXR0clNleHBbXV1cbiAgfCBbJ21vZGlmaWVycycsIC4uLk1vZGlmaWVyU2V4cFtdXVxuICB8IFsnYm9keScsIC4uLkFTVHYxLlN0YXRlbWVudFtdXVxuICB8IFsnY29tbWVudHMnLCAuLi5FbGVtZW50Q29tbWVudFtdXVxuICB8IFsnYXMnLCAuLi5zdHJpbmdbXV1cbiAgfCBbJ2xvYycsIFNvdXJjZUxvY2F0aW9uXTtcblxuZXhwb3J0IHR5cGUgUGF0aFNleHAgPSBzdHJpbmcgfCBbJ3BhdGgnLCBzdHJpbmcsIExvY1NleHA/XTtcblxuZXhwb3J0IHR5cGUgTW9kaWZpZXJTZXhwID1cbiAgfCBzdHJpbmdcbiAgfCBbUGF0aFNleHAsIExvY1NleHA/XVxuICB8IFtQYXRoU2V4cCwgQVNUdjEuRXhwcmVzc2lvbltdLCBMb2NTZXhwP11cbiAgfCBbUGF0aFNleHAsIEFTVHYxLkV4cHJlc3Npb25bXSwgRGljdDxBU1R2MS5FeHByZXNzaW9uPiwgTG9jU2V4cD9dO1xuXG5leHBvcnQgdHlwZSBBdHRyU2V4cCA9IFtzdHJpbmcsIEFTVHYxLkF0dHJOb2RlWyd2YWx1ZSddIHwgc3RyaW5nLCBMb2NTZXhwP107XG5cbmV4cG9ydCB0eXBlIExvY1NleHAgPSBbJ2xvYycsIFNvdXJjZUxvY2F0aW9uXTtcblxuZXhwb3J0IHR5cGUgRWxlbWVudENvbW1lbnQgPSBBU1R2MS5NdXN0YWNoZUNvbW1lbnRTdGF0ZW1lbnQgfCBTb3VyY2VMb2NhdGlvbiB8IHN0cmluZztcblxuZXhwb3J0IHR5cGUgU2V4cFZhbHVlID1cbiAgfCBzdHJpbmdcbiAgfCBBU1R2MS5FeHByZXNzaW9uW11cbiAgfCBEaWN0PEFTVHYxLkV4cHJlc3Npb24+XG4gIHwgTG9jU2V4cFxuICB8IFBhdGhTZXhwXG4gIHwgdW5kZWZpbmVkO1xuXG5leHBvcnQgaW50ZXJmYWNlIEJ1aWxkRWxlbWVudE9wdGlvbnMge1xuICBhdHRycz86IEFTVHYxLkF0dHJOb2RlW107XG4gIG1vZGlmaWVycz86IEFTVHYxLkVsZW1lbnRNb2RpZmllclN0YXRlbWVudFtdO1xuICBjaGlsZHJlbj86IEFTVHYxLlN0YXRlbWVudFtdO1xuICBjb21tZW50cz86IEVsZW1lbnRDb21tZW50W107XG4gIGJsb2NrUGFyYW1zPzogc3RyaW5nW107XG4gIGxvYz86IFNvdXJjZVNwYW47XG59XG5cbmZ1bmN0aW9uIGJ1aWxkRWxlbWVudCh0YWc6IFRhZ0Rlc2NyaXB0b3IsIG9wdGlvbnM6IEJ1aWxkRWxlbWVudE9wdGlvbnMpOiBBU1R2MS5FbGVtZW50Tm9kZSB7XG4gIGxldCB7IGF0dHJzLCBibG9ja1BhcmFtcywgbW9kaWZpZXJzLCBjb21tZW50cywgY2hpbGRyZW4sIGxvYyB9ID0gb3B0aW9ucztcblxuICBsZXQgdGFnTmFtZTogc3RyaW5nO1xuXG4gIC8vIHRoaXMgaXMgdXNlZCBmb3IgYmFja3dhcmRzIGNvbXBhdCwgcHJpb3IgdG8gYHNlbGZDbG9zaW5nYCBiZWluZyBwYXJ0IG9mIHRoZSBFbGVtZW50Tm9kZSBBU1RcbiAgbGV0IHNlbGZDbG9zaW5nID0gZmFsc2U7XG4gIGlmICh0eXBlb2YgdGFnID09PSAnb2JqZWN0Jykge1xuICAgIHNlbGZDbG9zaW5nID0gdGFnLnNlbGZDbG9zaW5nO1xuICAgIHRhZ05hbWUgPSB0YWcubmFtZTtcbiAgfSBlbHNlIGlmICh0YWcuc2xpY2UoLTEpID09PSAnLycpIHtcbiAgICB0YWdOYW1lID0gdGFnLnNsaWNlKDAsIC0xKTtcbiAgICBzZWxmQ2xvc2luZyA9IHRydWU7XG4gIH0gZWxzZSB7XG4gICAgdGFnTmFtZSA9IHRhZztcbiAgfVxuXG4gIHJldHVybiB7XG4gICAgdHlwZTogJ0VsZW1lbnROb2RlJyxcbiAgICB0YWc6IHRhZ05hbWUsXG4gICAgc2VsZkNsb3Npbmc6IHNlbGZDbG9zaW5nLFxuICAgIGF0dHJpYnV0ZXM6IGF0dHJzIHx8IFtdLFxuICAgIGJsb2NrUGFyYW1zOiBibG9ja1BhcmFtcyB8fCBbXSxcbiAgICBtb2RpZmllcnM6IG1vZGlmaWVycyB8fCBbXSxcbiAgICBjb21tZW50czogKGNvbW1lbnRzIGFzIEFTVHYxLk11c3RhY2hlQ29tbWVudFN0YXRlbWVudFtdKSB8fCBbXSxcbiAgICBjaGlsZHJlbjogY2hpbGRyZW4gfHwgW10sXG4gICAgbG9jOiBidWlsZExvYyhsb2MgfHwgbnVsbCksXG4gIH07XG59XG5cbmZ1bmN0aW9uIGJ1aWxkQXR0cihcbiAgbmFtZTogc3RyaW5nLFxuICB2YWx1ZTogQVNUdjEuQXR0ck5vZGVbJ3ZhbHVlJ10sXG4gIGxvYz86IFNvdXJjZUxvY2F0aW9uXG4pOiBBU1R2MS5BdHRyTm9kZSB7XG4gIHJldHVybiB7XG4gICAgdHlwZTogJ0F0dHJOb2RlJyxcbiAgICBuYW1lOiBuYW1lLFxuICAgIHZhbHVlOiB2YWx1ZSxcbiAgICBsb2M6IGJ1aWxkTG9jKGxvYyB8fCBudWxsKSxcbiAgfTtcbn1cblxuZnVuY3Rpb24gYnVpbGRUZXh0KGNoYXJzPzogc3RyaW5nLCBsb2M/OiBTb3VyY2VMb2NhdGlvbik6IEFTVHYxLlRleHROb2RlIHtcbiAgcmV0dXJuIHtcbiAgICB0eXBlOiAnVGV4dE5vZGUnLFxuICAgIGNoYXJzOiBjaGFycyB8fCAnJyxcbiAgICBsb2M6IGJ1aWxkTG9jKGxvYyB8fCBudWxsKSxcbiAgfTtcbn1cblxuLy8gRXhwcmVzc2lvbnNcblxuZnVuY3Rpb24gYnVpbGRTZXhwcihcbiAgcGF0aDogQnVpbGRlckhlYWQsXG4gIHBhcmFtcz86IEFTVHYxLkV4cHJlc3Npb25bXSxcbiAgaGFzaD86IEFTVHYxLkhhc2gsXG4gIGxvYz86IFNvdXJjZUxvY2F0aW9uXG4pOiBBU1R2MS5TdWJFeHByZXNzaW9uIHtcbiAgcmV0dXJuIHtcbiAgICB0eXBlOiAnU3ViRXhwcmVzc2lvbicsXG4gICAgcGF0aDogYnVpbGRQYXRoKHBhdGgpLFxuICAgIHBhcmFtczogcGFyYW1zIHx8IFtdLFxuICAgIGhhc2g6IGhhc2ggfHwgYnVpbGRIYXNoKFtdKSxcbiAgICBsb2M6IGJ1aWxkTG9jKGxvYyB8fCBudWxsKSxcbiAgfTtcbn1cblxuZnVuY3Rpb24gaGVhZFRvU3RyaW5nKGhlYWQ6IEFTVHYxLlBhdGhIZWFkKTogeyBvcmlnaW5hbDogc3RyaW5nOyBwYXJ0czogc3RyaW5nW10gfSB7XG4gIHN3aXRjaCAoaGVhZC50eXBlKSB7XG4gICAgY2FzZSAnQXRIZWFkJzpcbiAgICAgIHJldHVybiB7IG9yaWdpbmFsOiBoZWFkLm5hbWUsIHBhcnRzOiBbaGVhZC5uYW1lXSB9O1xuICAgIGNhc2UgJ1RoaXNIZWFkJzpcbiAgICAgIHJldHVybiB7IG9yaWdpbmFsOiBgdGhpc2AsIHBhcnRzOiBbXSB9O1xuICAgIGNhc2UgJ1ZhckhlYWQnOlxuICAgICAgcmV0dXJuIHsgb3JpZ2luYWw6IGhlYWQubmFtZSwgcGFydHM6IFtoZWFkLm5hbWVdIH07XG4gIH1cbn1cblxuZnVuY3Rpb24gYnVpbGRIZWFkKFxuICBvcmlnaW5hbDogc3RyaW5nLFxuICBsb2M6IFNvdXJjZUxvY2F0aW9uXG4pOiB7IGhlYWQ6IEFTVHYxLlBhdGhIZWFkOyB0YWlsOiBzdHJpbmdbXSB9IHtcbiAgbGV0IFtoZWFkLCAuLi50YWlsXSA9IG9yaWdpbmFsLnNwbGl0KCcuJyk7XG4gIGxldCBoZWFkTm9kZTogQVNUdjEuUGF0aEhlYWQ7XG5cbiAgaWYgKGhlYWQgPT09ICd0aGlzJykge1xuICAgIGhlYWROb2RlID0ge1xuICAgICAgdHlwZTogJ1RoaXNIZWFkJyxcbiAgICAgIGxvYzogYnVpbGRMb2MobG9jIHx8IG51bGwpLFxuICAgIH07XG4gIH0gZWxzZSBpZiAoaGVhZFswXSA9PT0gJ0AnKSB7XG4gICAgaGVhZE5vZGUgPSB7XG4gICAgICB0eXBlOiAnQXRIZWFkJyxcbiAgICAgIG5hbWU6IGhlYWQsXG4gICAgICBsb2M6IGJ1aWxkTG9jKGxvYyB8fCBudWxsKSxcbiAgICB9O1xuICB9IGVsc2Uge1xuICAgIGhlYWROb2RlID0ge1xuICAgICAgdHlwZTogJ1ZhckhlYWQnLFxuICAgICAgbmFtZTogaGVhZCxcbiAgICAgIGxvYzogYnVpbGRMb2MobG9jIHx8IG51bGwpLFxuICAgIH07XG4gIH1cblxuICByZXR1cm4ge1xuICAgIGhlYWQ6IGhlYWROb2RlLFxuICAgIHRhaWwsXG4gIH07XG59XG5cbmZ1bmN0aW9uIGJ1aWxkVGhpcyhsb2M6IFNvdXJjZUxvY2F0aW9uKTogQVNUdjEuUGF0aEhlYWQge1xuICByZXR1cm4ge1xuICAgIHR5cGU6ICdUaGlzSGVhZCcsXG4gICAgbG9jOiBidWlsZExvYyhsb2MgfHwgbnVsbCksXG4gIH07XG59XG5cbmZ1bmN0aW9uIGJ1aWxkQXROYW1lKG5hbWU6IHN0cmluZywgbG9jOiBTb3VyY2VMb2NhdGlvbik6IEFTVHYxLlBhdGhIZWFkIHtcbiAgLy8gdGhlIGBAYCBzaG91bGQgYmUgaW5jbHVkZWQgc28gd2UgaGF2ZSBhIGNvbXBsZXRlIHNvdXJjZSByYW5nZVxuICBhc3NlcnQobmFtZVswXSA9PT0gJ0AnLCBgY2FsbCBidWlsZGVycy5hdCgpIHdpdGggYSBzdHJpbmcgdGhhdCBzdGFydHMgd2l0aCAnQCdgKTtcblxuICByZXR1cm4ge1xuICAgIHR5cGU6ICdBdEhlYWQnLFxuICAgIG5hbWUsXG4gICAgbG9jOiBidWlsZExvYyhsb2MgfHwgbnVsbCksXG4gIH07XG59XG5cbmZ1bmN0aW9uIGJ1aWxkVmFyKG5hbWU6IHN0cmluZywgbG9jOiBTb3VyY2VMb2NhdGlvbik6IEFTVHYxLlBhdGhIZWFkIHtcbiAgYXNzZXJ0KG5hbWUgIT09ICd0aGlzJywgYFlvdSBjYWxsZWQgYnVpbGRlcnMudmFyKCkgd2l0aCAndGhpcycuIENhbGwgYnVpbGRlcnMudGhpcyBpbnN0ZWFkYCk7XG4gIGFzc2VydChcbiAgICBuYW1lWzBdICE9PSAnQCcsXG4gICAgYFlvdSBjYWxsZWQgYnVpbGRlcnMudmFyKCkgd2l0aCAnJHtuYW1lfScuIENhbGwgYnVpbGRlcnMuYXQoJyR7bmFtZX0nKSBpbnN0ZWFkYFxuICApO1xuXG4gIHJldHVybiB7XG4gICAgdHlwZTogJ1ZhckhlYWQnLFxuICAgIG5hbWUsXG4gICAgbG9jOiBidWlsZExvYyhsb2MgfHwgbnVsbCksXG4gIH07XG59XG5cbmZ1bmN0aW9uIGJ1aWxkSGVhZEZyb21TdHJpbmcoaGVhZDogc3RyaW5nLCBsb2M6IFNvdXJjZUxvY2F0aW9uKTogQVNUdjEuUGF0aEhlYWQge1xuICBpZiAoaGVhZFswXSA9PT0gJ0AnKSB7XG4gICAgcmV0dXJuIGJ1aWxkQXROYW1lKGhlYWQsIGxvYyk7XG4gIH0gZWxzZSBpZiAoaGVhZCA9PT0gJ3RoaXMnKSB7XG4gICAgcmV0dXJuIGJ1aWxkVGhpcyhsb2MpO1xuICB9IGVsc2Uge1xuICAgIHJldHVybiBidWlsZFZhcihoZWFkLCBsb2MpO1xuICB9XG59XG5cbmZ1bmN0aW9uIGJ1aWxkTmFtZWRCbG9ja05hbWUobmFtZTogc3RyaW5nLCBsb2M/OiBTb3VyY2VMb2NhdGlvbik6IEFTVHYxLk5hbWVkQmxvY2tOYW1lIHtcbiAgcmV0dXJuIHtcbiAgICB0eXBlOiAnTmFtZWRCbG9ja05hbWUnLFxuICAgIG5hbWUsXG4gICAgbG9jOiBidWlsZExvYyhsb2MgfHwgbnVsbCksXG4gIH07XG59XG5cbmZ1bmN0aW9uIGJ1aWxkQ2xlYW5QYXRoKFxuICBoZWFkOiBBU1R2MS5QYXRoSGVhZCxcbiAgdGFpbDogc3RyaW5nW10sXG4gIGxvYzogU291cmNlTG9jYXRpb25cbik6IEFTVHYxLlBhdGhFeHByZXNzaW9uIHtcbiAgbGV0IHsgb3JpZ2luYWw6IG9yaWdpbmFsSGVhZCwgcGFydHM6IGhlYWRQYXJ0cyB9ID0gaGVhZFRvU3RyaW5nKGhlYWQpO1xuICBsZXQgcGFydHMgPSBbLi4uaGVhZFBhcnRzLCAuLi50YWlsXTtcbiAgbGV0IG9yaWdpbmFsID0gWy4uLm9yaWdpbmFsSGVhZCwgLi4ucGFydHNdLmpvaW4oJy4nKTtcblxuICByZXR1cm4gbmV3IFBhdGhFeHByZXNzaW9uSW1wbFYxKG9yaWdpbmFsLCBoZWFkLCB0YWlsLCBidWlsZExvYyhsb2MgfHwgbnVsbCkpO1xufVxuXG5mdW5jdGlvbiBidWlsZFBhdGgoXG4gIHBhdGg6IEFTVHYxLlBhdGhFeHByZXNzaW9uIHwgc3RyaW5nIHwgeyBoZWFkOiBzdHJpbmc7IHRhaWw6IHN0cmluZ1tdIH0sXG4gIGxvYz86IFNvdXJjZUxvY2F0aW9uXG4pOiBBU1R2MS5QYXRoRXhwcmVzc2lvbjtcbmZ1bmN0aW9uIGJ1aWxkUGF0aChwYXRoOiBBU1R2MS5FeHByZXNzaW9uLCBsb2M/OiBTb3VyY2VMb2NhdGlvbik6IEFTVHYxLkV4cHJlc3Npb247XG5mdW5jdGlvbiBidWlsZFBhdGgocGF0aDogQnVpbGRlckhlYWQgfCBBU1R2MS5FeHByZXNzaW9uLCBsb2M/OiBTb3VyY2VMb2NhdGlvbik6IEFTVHYxLkV4cHJlc3Npb247XG5mdW5jdGlvbiBidWlsZFBhdGgoXG4gIHBhdGg6IEJ1aWxkZXJIZWFkIHwgQVNUdjEuRXhwcmVzc2lvbiB8IHsgaGVhZDogc3RyaW5nOyB0YWlsOiBzdHJpbmdbXSB9LFxuICBsb2M/OiBTb3VyY2VMb2NhdGlvblxuKTogQVNUdjEuRXhwcmVzc2lvbiB7XG4gIGlmICh0eXBlb2YgcGF0aCAhPT0gJ3N0cmluZycpIHtcbiAgICBpZiAoJ3R5cGUnIGluIHBhdGgpIHtcbiAgICAgIHJldHVybiBwYXRoO1xuICAgIH0gZWxzZSB7XG4gICAgICBsZXQgeyBoZWFkLCB0YWlsIH0gPSBidWlsZEhlYWQocGF0aC5oZWFkLCBTb3VyY2VTcGFuLmJyb2tlbigpKTtcblxuICAgICAgYXNzZXJ0KFxuICAgICAgICB0YWlsLmxlbmd0aCA9PT0gMCxcbiAgICAgICAgYGJ1aWxkZXIucGF0aCh7IGhlYWQsIHRhaWwgfSkgc2hvdWxkIG5vdCBiZSBjYWxsZWQgd2l0aCBhIGhlYWQgd2l0aCBkb3RzIGluIGl0YFxuICAgICAgKTtcblxuICAgICAgbGV0IHsgb3JpZ2luYWw6IG9yaWdpbmFsSGVhZCB9ID0gaGVhZFRvU3RyaW5nKGhlYWQpO1xuXG4gICAgICByZXR1cm4gbmV3IFBhdGhFeHByZXNzaW9uSW1wbFYxKFxuICAgICAgICBbb3JpZ2luYWxIZWFkLCAuLi50YWlsXS5qb2luKCcuJyksXG4gICAgICAgIGhlYWQsXG4gICAgICAgIHRhaWwsXG4gICAgICAgIGJ1aWxkTG9jKGxvYyB8fCBudWxsKVxuICAgICAgKTtcbiAgICB9XG4gIH1cblxuICBsZXQgeyBoZWFkLCB0YWlsIH0gPSBidWlsZEhlYWQocGF0aCwgU291cmNlU3Bhbi5icm9rZW4oKSk7XG5cbiAgcmV0dXJuIG5ldyBQYXRoRXhwcmVzc2lvbkltcGxWMShwYXRoLCBoZWFkLCB0YWlsLCBidWlsZExvYyhsb2MgfHwgbnVsbCkpO1xufVxuXG5mdW5jdGlvbiBidWlsZExpdGVyYWw8VCBleHRlbmRzIEFTVHYxLkxpdGVyYWw+KFxuICB0eXBlOiBUWyd0eXBlJ10sXG4gIHZhbHVlOiBUWyd2YWx1ZSddLFxuICBsb2M/OiBTb3VyY2VMb2NhdGlvblxuKTogVCB7XG4gIHJldHVybiB7XG4gICAgdHlwZSxcbiAgICB2YWx1ZSxcbiAgICBvcmlnaW5hbDogdmFsdWUsXG4gICAgbG9jOiBidWlsZExvYyhsb2MgfHwgbnVsbCksXG4gIH0gYXMgVDtcbn1cblxuLy8gTWlzY2VsbGFuZW91c1xuXG5mdW5jdGlvbiBidWlsZEhhc2gocGFpcnM/OiBBU1R2MS5IYXNoUGFpcltdLCBsb2M/OiBTb3VyY2VMb2NhdGlvbik6IEFTVHYxLkhhc2gge1xuICByZXR1cm4ge1xuICAgIHR5cGU6ICdIYXNoJyxcbiAgICBwYWlyczogcGFpcnMgfHwgW10sXG4gICAgbG9jOiBidWlsZExvYyhsb2MgfHwgbnVsbCksXG4gIH07XG59XG5cbmZ1bmN0aW9uIGJ1aWxkUGFpcihrZXk6IHN0cmluZywgdmFsdWU6IEFTVHYxLkV4cHJlc3Npb24sIGxvYz86IFNvdXJjZUxvY2F0aW9uKTogQVNUdjEuSGFzaFBhaXIge1xuICByZXR1cm4ge1xuICAgIHR5cGU6ICdIYXNoUGFpcicsXG4gICAga2V5OiBrZXksXG4gICAgdmFsdWUsXG4gICAgbG9jOiBidWlsZExvYyhsb2MgfHwgbnVsbCksXG4gIH07XG59XG5cbmZ1bmN0aW9uIGJ1aWxkUHJvZ3JhbShcbiAgYm9keT86IEFTVHYxLlN0YXRlbWVudFtdLFxuICBibG9ja1BhcmFtcz86IHN0cmluZ1tdLFxuICBsb2M/OiBTb3VyY2VMb2NhdGlvblxuKTogQVNUdjEuVGVtcGxhdGUge1xuICByZXR1cm4ge1xuICAgIHR5cGU6ICdUZW1wbGF0ZScsXG4gICAgYm9keTogYm9keSB8fCBbXSxcbiAgICBibG9ja1BhcmFtczogYmxvY2tQYXJhbXMgfHwgW10sXG4gICAgbG9jOiBidWlsZExvYyhsb2MgfHwgbnVsbCksXG4gIH07XG59XG5cbmZ1bmN0aW9uIGJ1aWxkQmxvY2tJdHNlbGYoXG4gIGJvZHk/OiBBU1R2MS5TdGF0ZW1lbnRbXSxcbiAgYmxvY2tQYXJhbXM/OiBzdHJpbmdbXSxcbiAgY2hhaW5lZCA9IGZhbHNlLFxuICBsb2M/OiBTb3VyY2VMb2NhdGlvblxuKTogQVNUdjEuQmxvY2sge1xuICByZXR1cm4ge1xuICAgIHR5cGU6ICdCbG9jaycsXG4gICAgYm9keTogYm9keSB8fCBbXSxcbiAgICBibG9ja1BhcmFtczogYmxvY2tQYXJhbXMgfHwgW10sXG4gICAgY2hhaW5lZCxcbiAgICBsb2M6IGJ1aWxkTG9jKGxvYyB8fCBudWxsKSxcbiAgfTtcbn1cblxuZnVuY3Rpb24gYnVpbGRUZW1wbGF0ZShcbiAgYm9keT86IEFTVHYxLlN0YXRlbWVudFtdLFxuICBibG9ja1BhcmFtcz86IHN0cmluZ1tdLFxuICBsb2M/OiBTb3VyY2VMb2NhdGlvblxuKTogQVNUdjEuVGVtcGxhdGUge1xuICByZXR1cm4ge1xuICAgIHR5cGU6ICdUZW1wbGF0ZScsXG4gICAgYm9keTogYm9keSB8fCBbXSxcbiAgICBibG9ja1BhcmFtczogYmxvY2tQYXJhbXMgfHwgW10sXG4gICAgbG9jOiBidWlsZExvYyhsb2MgfHwgbnVsbCksXG4gIH07XG59XG5cbmZ1bmN0aW9uIGJ1aWxkUG9zaXRpb24obGluZTogbnVtYmVyLCBjb2x1bW46IG51bWJlcik6IFNvdXJjZVBvc2l0aW9uIHtcbiAgcmV0dXJuIHtcbiAgICBsaW5lLFxuICAgIGNvbHVtbixcbiAgfTtcbn1cblxuZnVuY3Rpb24gYnVpbGRMb2MobG9jOiBPcHRpb248U291cmNlTG9jYXRpb24+KTogU291cmNlU3BhbjtcbmZ1bmN0aW9uIGJ1aWxkTG9jKFxuICBzdGFydExpbmU6IG51bWJlcixcbiAgc3RhcnRDb2x1bW46IG51bWJlcixcbiAgZW5kTGluZT86IG51bWJlcixcbiAgZW5kQ29sdW1uPzogbnVtYmVyLFxuICBzb3VyY2U/OiBzdHJpbmdcbik6IFNvdXJjZVNwYW47XG5cbmZ1bmN0aW9uIGJ1aWxkTG9jKC4uLmFyZ3M6IGFueVtdKTogU291cmNlU3BhbiB7XG4gIGlmIChhcmdzLmxlbmd0aCA9PT0gMSkge1xuICAgIGxldCBsb2MgPSBhcmdzWzBdO1xuXG4gICAgaWYgKGxvYyAmJiB0eXBlb2YgbG9jID09PSAnb2JqZWN0Jykge1xuICAgICAgcmV0dXJuIFNvdXJjZVNwYW4uZm9ySGJzTG9jKFNPVVJDRSgpLCBsb2MpO1xuICAgIH0gZWxzZSB7XG4gICAgICByZXR1cm4gU291cmNlU3Bhbi5mb3JIYnNMb2MoU09VUkNFKCksIFNZTlRIRVRJQ19MT0NBVElPTik7XG4gICAgfVxuICB9IGVsc2Uge1xuICAgIGxldCBbc3RhcnRMaW5lLCBzdGFydENvbHVtbiwgZW5kTGluZSwgZW5kQ29sdW1uLCBfc291cmNlXSA9IGFyZ3M7XG4gICAgbGV0IHNvdXJjZSA9IF9zb3VyY2UgPyBuZXcgU291cmNlKCcnLCBfc291cmNlKSA6IFNPVVJDRSgpO1xuXG4gICAgcmV0dXJuIFNvdXJjZVNwYW4uZm9ySGJzTG9jKHNvdXJjZSwge1xuICAgICAgc3RhcnQ6IHtcbiAgICAgICAgbGluZTogc3RhcnRMaW5lLFxuICAgICAgICBjb2x1bW46IHN0YXJ0Q29sdW1uLFxuICAgICAgfSxcbiAgICAgIGVuZDoge1xuICAgICAgICBsaW5lOiBlbmRMaW5lLFxuICAgICAgICBjb2x1bW46IGVuZENvbHVtbixcbiAgICAgIH0sXG4gICAgfSk7XG4gIH1cbn1cblxuZXhwb3J0IGRlZmF1bHQge1xuICBtdXN0YWNoZTogYnVpbGRNdXN0YWNoZSxcbiAgYmxvY2s6IGJ1aWxkQmxvY2ssXG4gIHBhcnRpYWw6IGJ1aWxkUGFydGlhbCxcbiAgY29tbWVudDogYnVpbGRDb21tZW50LFxuICBtdXN0YWNoZUNvbW1lbnQ6IGJ1aWxkTXVzdGFjaGVDb21tZW50LFxuICBlbGVtZW50OiBidWlsZEVsZW1lbnQsXG4gIGVsZW1lbnRNb2RpZmllcjogYnVpbGRFbGVtZW50TW9kaWZpZXIsXG4gIGF0dHI6IGJ1aWxkQXR0cixcbiAgdGV4dDogYnVpbGRUZXh0LFxuICBzZXhwcjogYnVpbGRTZXhwcixcblxuICBjb25jYXQ6IGJ1aWxkQ29uY2F0LFxuICBoYXNoOiBidWlsZEhhc2gsXG4gIHBhaXI6IGJ1aWxkUGFpcixcbiAgbGl0ZXJhbDogYnVpbGRMaXRlcmFsLFxuICBwcm9ncmFtOiBidWlsZFByb2dyYW0sXG4gIGJsb2NrSXRzZWxmOiBidWlsZEJsb2NrSXRzZWxmLFxuICB0ZW1wbGF0ZTogYnVpbGRUZW1wbGF0ZSxcbiAgbG9jOiBidWlsZExvYyxcbiAgcG9zOiBidWlsZFBvc2l0aW9uLFxuXG4gIHBhdGg6IGJ1aWxkUGF0aCxcblxuICBmdWxsUGF0aDogYnVpbGRDbGVhblBhdGgsXG4gIGhlYWQ6IGJ1aWxkSGVhZEZyb21TdHJpbmcsXG4gIGF0OiBidWlsZEF0TmFtZSxcbiAgdmFyOiBidWlsZFZhcixcbiAgdGhpczogYnVpbGRUaGlzLFxuICBibG9ja05hbWU6IGJ1aWxkTmFtZWRCbG9ja05hbWUsXG5cbiAgc3RyaW5nOiBsaXRlcmFsKCdTdHJpbmdMaXRlcmFsJykgYXMgKHZhbHVlOiBzdHJpbmcpID0+IEFTVHYxLlN0cmluZ0xpdGVyYWwsXG4gIGJvb2xlYW46IGxpdGVyYWwoJ0Jvb2xlYW5MaXRlcmFsJykgYXMgKHZhbHVlOiBib29sZWFuKSA9PiBBU1R2MS5Cb29sZWFuTGl0ZXJhbCxcbiAgbnVtYmVyOiBsaXRlcmFsKCdOdW1iZXJMaXRlcmFsJykgYXMgKHZhbHVlOiBudW1iZXIpID0+IEFTVHYxLk51bWJlckxpdGVyYWwsXG4gIHVuZGVmaW5lZCgpOiBBU1R2MS5VbmRlZmluZWRMaXRlcmFsIHtcbiAgICByZXR1cm4gYnVpbGRMaXRlcmFsKCdVbmRlZmluZWRMaXRlcmFsJywgdW5kZWZpbmVkKTtcbiAgfSxcbiAgbnVsbCgpOiBBU1R2MS5OdWxsTGl0ZXJhbCB7XG4gICAgcmV0dXJuIGJ1aWxkTGl0ZXJhbCgnTnVsbExpdGVyYWwnLCBudWxsKTtcbiAgfSxcbn07XG5cbnR5cGUgQnVpbGRMaXRlcmFsPFQgZXh0ZW5kcyBBU1R2MS5MaXRlcmFsPiA9ICh2YWx1ZTogVFsndmFsdWUnXSkgPT4gVDtcblxuZnVuY3Rpb24gbGl0ZXJhbDxUIGV4dGVuZHMgQVNUdjEuTGl0ZXJhbD4odHlwZTogVFsndHlwZSddKTogQnVpbGRMaXRlcmFsPFQ+IHtcbiAgcmV0dXJuIGZ1bmN0aW9uICh2YWx1ZTogVFsndmFsdWUnXSwgbG9jPzogU291cmNlTG9jYXRpb24pOiBUIHtcbiAgICByZXR1cm4gYnVpbGRMaXRlcmFsKHR5cGUsIHZhbHVlLCBsb2MpO1xuICB9O1xufVxuIl0sInNvdXJjZVJvb3QiOiIifQ==
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3BhY2thZ2VzL0BnbGltbWVyL3N5bnRheC9saWIvdjEvcHVibGljLWJ1aWxkZXJzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUVBLFNBQVMsTUFBVCxFQUFpQixNQUFqQixFQUF5QixTQUF6QixFQUFvQyxTQUFwQyxRQUFxRCxlQUFyRDtBQUVBLFNBQXlDLGtCQUF6QyxRQUFtRSxvQkFBbkU7QUFDQSxTQUFTLE1BQVQsUUFBdUIsa0JBQXZCO0FBQ0EsU0FBUyxVQUFULFFBQTJCLGdCQUEzQjtBQUVBLFNBQVMsb0JBQVQsUUFBcUMsa0JBQXJDOztBQUVBLElBQUksT0FBSjs7QUFFQSxTQUFTLE1BQVQsR0FBZTtBQUNiLE1BQUksQ0FBQyxPQUFMLEVBQWM7QUFDWixJQUFBLE9BQU8sR0FBRyxJQUFJLE1BQUosQ0FBVyxFQUFYLEVBQWUsYUFBZixDQUFWO0FBQ0Q7O0FBRUQsU0FBTyxPQUFQO0FBQ0Q7O0FBU0QsU0FBUyxhQUFULENBQ0UsSUFERixFQUVFLE1BRkYsRUFHRSxJQUhGLEVBSUUsR0FKRixFQUtFLEdBTEYsRUFNRSxLQU5GLEVBTTBCO0FBRXhCLE1BQUksT0FBTyxJQUFQLEtBQWdCLFFBQXBCLEVBQThCO0FBQzVCLElBQUEsSUFBSSxHQUFHLFNBQVMsQ0FBQyxJQUFELENBQWhCO0FBQ0Q7O0FBRUQsU0FBTztBQUNMLElBQUEsSUFBSSxFQUFFLG1CQUREO0FBRUwsSUFBQSxJQUZLO0FBR0wsSUFBQSxNQUFNLEVBQUUsTUFBTSxJQUFJLEVBSGI7QUFJTCxJQUFBLElBQUksRUFBRSxJQUFJLElBQUksU0FBUyxDQUFDLEVBQUQsQ0FKbEI7QUFLTCxJQUFBLE9BQU8sRUFBRSxDQUFDLEdBTEw7QUFNTCxJQUFBLFFBQVEsRUFBRSxDQUFDLENBQUMsR0FOUDtBQU9MLElBQUEsR0FBRyxFQUFFLFFBQVEsQ0FBQyxHQUFHLElBQUksSUFBUixDQVBSO0FBUUwsSUFBQSxLQUFLLEVBQUUsS0FBSyxJQUFJO0FBQUUsTUFBQSxJ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LEVBQUEsUUFBUSxFQUFFLGNBeEJHO0FBeUJiLEVBQUEsSUFBSSxFQUFFLG1CQXpCTztBQTBCYixFQUFBLEVBQUUsRUFBRSxXQTFCUztBQTJCYixFQUFBLEdBQUcsRUFBRSxRQTNCUTtBQTRCYixFQUFBLElBQUksRUFBRSxTQTVCTztBQTZCYixFQUFBLFNBQVMsRUFBRSxtQkE3QkU7QUErQmIsRUFBQSxNQUFNLEVBQUUsT0FBTyxDQUFDLGVBQUQsQ0EvQkY7QUFnQ2IsRUFBQSxPQUFPLEVBQUUsT0FBTyxDQUFDLGdCQUFELENBaENIO0FBaUNiLEVBQUEsTUFBTSxFQUFFLE9BQU8sQ0FBQyxlQUFELENBakNGOztBQWtDYixFQUFBLFNBQVMsR0FBQTtBQUNQLFdBQU8sWUFBWSxDQUFDLGtCQUFELEVBQXFCLFNBQXJCLENBQW5CO0FBQ0QsR0FwQ1k7O0FBcUNiLEVBQUEsSUFBSSxHQUFBO0FBQ0YsV0FBTyxZQUFZLENBQUMsYUFBRCxFQUFnQixJQUFoQixDQUFuQjtBQUNEOztBQXZDWSxDQUFmOztBQTRDQSxTQUFTLE9BQVQsQ0FBMEMsSUFBMUMsRUFBeUQ7QUFDdkQsU0FBTyxVQUFVLEtBQVYsRUFBNkIsR0FBN0IsRUFBaUQ7QUFDdEQsV0FBTyxZQUFZLENBQUMsSUFBRCxFQUFPLEtBQVAsRUFBYyxHQUFkLENBQW5CO0FBQ0QsR0FGRDtBQUdEIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgRGljdCwgT3B0aW9uIH0gZnJvbSAnQGdsaW1tZXIvaW50ZXJmYWNlcyc7XG5pbXBvcnQgeyBMT0NBTF9ERUJVRyB9IGZyb20gJ0BnbGltbWVyL2xvY2FsLWRlYnVnLWZsYWdzJztcbmltcG9ydCB7IGFzc2VydCwgYXNzaWduLCBkZXByZWNhdGUsIGlzUHJlc2VudCB9IGZyb20gJ0BnbGltbWVyL3V0aWwnO1xuXG5pbXBvcnQgeyBTb3VyY2VMb2NhdGlvbiwgU291cmNlUG9zaXRpb24sIFNZTlRIRVRJQ19MT0NBVElPTiB9IGZyb20gJy4uL3NvdXJjZS9sb2NhdGlvbic7XG5pbXBvcnQgeyBTb3VyY2UgfSBmcm9tICcuLi9zb3VyY2Uvc291cmNlJztcbmltcG9ydCB7IFNvdXJjZVNwYW4gfSBmcm9tICcuLi9zb3VyY2Uvc3Bhbic7XG5pbXBvcnQgKiBhcyBBU1R2MSBmcm9tICcuL2FwaSc7XG5pbXBvcnQgeyBQYXRoRXhwcmVzc2lvbkltcGxWMSB9IGZyb20gJy4vbGVnYWN5LWludGVyb3AnO1xuXG5sZXQgX1NPVVJDRTogU291cmNlIHwgdW5kZWZpbmVkO1xuXG5mdW5jdGlvbiBTT1VSQ0UoKTogU291cmNlIHtcbiAgaWYgKCFfU09VUkNFKSB7XG4gICAgX1NPVVJDRSA9IG5ldyBTb3VyY2UoJycsICcoc3ludGhldGljKScpO1xuICB9XG5cbiAgcmV0dXJuIF9TT1VSQ0U7XG59XG5cbi8vIGNvbnN0IFNPVVJDRSA9IG5ldyBTb3VyY2UoJycsICcodGVzdHMpJyk7XG5cbi8vIFN0YXRlbWVudHNcblxuZXhwb3J0IHR5cGUgQnVpbGRlckhlYWQgPSBzdHJpbmcgfCBBU1R2MS5FeHByZXNzaW9uO1xuZXhwb3J0IHR5cGUgVGFnRGVzY3JpcHRvciA9IHN0cmluZyB8IHsgbmFtZTogc3RyaW5nOyBzZWxmQ2xvc2luZzogYm9vbGVhbiB9O1xuXG5mdW5jdGlvbiBidWlsZE11c3RhY2hlKFxuICBwYXRoOiBCdWlsZGVySGVhZCB8IEFTVHYxLkxpdGVyYWwsXG4gIHBhcmFtcz86IEFTVHYxLkV4cHJlc3Npb25bXSxcbiAgaGFzaD86IEFTVHYxLkhhc2gsXG4gIHJhdz86IGJvb2xlYW4sXG4gIGxvYz86IFNvdXJjZUxvY2F0aW9uLFxuICBzdHJpcD86IEFTVHYxLlN0cmlwRmxhZ3Ncbik6IEFTVHYxLk11c3RhY2hlU3RhdGVtZW50IHtcbiAgaWYgKHR5cGVvZiBwYXRoID09PSAnc3RyaW5nJykge1xuICAgIHBhdGggPSBidWlsZFBhdGgocGF0aCk7XG4gIH1cblxuICByZXR1cm4ge1xuICAgIHR5cGU6ICdNdXN0YWNoZVN0YXRlbWVudCcsXG4gICAgcGF0aCxcbiAgICBwYXJhbXM6IHBhcmFtcyB8fCBbXSxcbiAgICBoYXNoOiBoYXNoIHx8IGJ1aWxkSGFzaChbXSksXG4gICAgZXNjYXBlZDogIXJhdyxcbiAgICB0cnVzdGluZzogISFyYXcsXG4gICAgbG9jOiBidWlsZExvYyhsb2MgfHwgbnVsbCksXG4gICAgc3RyaXA6IHN0cmlwIHx8IHsgb3BlbjogZmFsc2UsIGNsb3NlOiBmYWxzZSB9LFxuICB9O1xufVxuXG5mdW5jdGlvbiBidWlsZEJsb2NrKFxuICBwYXRoOiBCdWlsZGVySGVhZCxcbiAgcGFyYW1zOiBPcHRpb248QVNUdjEuRXhwcmVzc2lvbltdPixcbiAgaGFzaDogT3B0aW9uPEFTVHYxLkhhc2g+LFxuICBfZGVmYXVsdEJsb2NrOiBBU1R2MS5Qb3NzaWJseURlcHJlY2F0ZWRCbG9jayxcbiAgX2Vsc2VCbG9jaz86IE9wdGlvbjxBU1R2MS5Qb3NzaWJseURlcHJlY2F0ZWRCbG9jaz4sXG4gIGxvYz86IFNvdXJjZUxvY2F0aW9uLFxuICBvcGVuU3RyaXA/OiBBU1R2MS5TdHJpcEZsYWdzLFxuICBpbnZlcnNlU3RyaXA/OiBBU1R2MS5TdHJpcEZsYWdzLFxuICBjbG9zZVN0cmlwPzogQVNUdjEuU3RyaXBGbGFnc1xuKTogQVNUdjEuQmxvY2tTdGF0ZW1lbnQge1xuICBsZXQgZGVmYXVsdEJsb2NrOiBBU1R2MS5CbG9jaztcbiAgbGV0IGVsc2VCbG9jazogT3B0aW9uPEFTVHYxLkJsb2NrPiB8IHVuZGVmaW5lZDtcblxuICBpZiAoX2RlZmF1bHRCbG9jay50eXBlID09PSAnVGVtcGxhdGUnKSB7XG4gICAgaWYgKExPQ0FMX0RFQlVHKSB7XG4gICAgICBkZXByZWNhdGUoYGIucHJvZ3JhbSBpcyBkZXByZWNhdGVkLiBVc2UgYi5ibG9ja0l0c2VsZiBpbnN0ZWFkLmApO1xuICAgIH1cblxuICAgIGRlZmF1bHRCbG9jayA9IChhc3NpZ24oe30sIF9kZWZhdWx0QmxvY2ssIHsgdHlwZTogJ0Jsb2NrJyB9KSBhcyB1bmtub3duKSBhcyBBU1R2MS5CbG9jaztcbiAgfSBlbHNlIHtcbiAgICBkZWZhdWx0QmxvY2sgPSBfZGVmYXVsdEJsb2NrO1xuICB9XG5cbiAgaWYgKF9lbHNlQmxvY2sgIT09IHVuZGVmaW5lZCAmJiBfZWxzZUJsb2NrICE9PSBudWxsICYmIF9lbHNlQmxvY2sudHlwZSA9PT0gJ1RlbXBsYXRlJykge1xuICAgIGlmIChMT0NBTF9ERUJVRykge1xuICAgICAgZGVwcmVjYXRlKGBiLnByb2dyYW0gaXMgZGVwcmVjYXRlZC4gVXNlIGIuYmxvY2tJdHNlbGYgaW5zdGVhZC5gKTtcbiAgICB9XG5cbiAgICBlbHNlQmxvY2sgPSAoYXNzaWduKHt9LCBfZWxzZUJsb2NrLCB7IHR5cGU6ICdCbG9jaycgfSkgYXMgdW5rbm93bikgYXMgQVNUdjEuQmxvY2s7XG4gIH0gZWxzZSB7XG4gICAgZWxzZUJsb2NrID0gX2Vsc2VCbG9jaztcbiAgfVxuXG4gIHJldHVybiB7XG4gICAgdHlwZTogJ0Jsb2NrU3RhdGVtZW50JyxcbiAgICBwYXRoOiBidWlsZFBhdGgocGF0aCksXG4gICAgcGFyYW1zOiBwYXJhbXMgfHwgW10sXG4gICAgaGFzaDogaGFzaCB8fCBidWlsZEhhc2goW10pLFxuICAgIHByb2dyYW06IGRlZmF1bHRCbG9jayB8fCBudWxsLFxuICAgIGludmVyc2U6IGVsc2VCbG9jayB8fCBudWxsLFxuICAgIGxvYzogYnVpbGRMb2MobG9jIHx8IG51bGwpLFxuICAgIG9wZW5TdHJpcDogb3BlblN0cmlwIHx8IHsgb3BlbjogZmFsc2UsIGNsb3NlOiBmYWxzZSB9LFxuICAgIGludmVyc2VTdHJpcDogaW52ZXJzZVN0cmlwIHx8IHsgb3BlbjogZmFsc2UsIGNsb3NlOiBmYWxzZSB9LFxuICAgIGNsb3NlU3RyaXA6IGNsb3NlU3RyaXAgfHwgeyBvcGVuOiBmYWxzZSwgY2xvc2U6IGZhbHNlIH0sXG4gIH07XG59XG5cbmZ1bmN0aW9uIGJ1aWxkRWxlbWVudE1vZGlmaWVyKFxuICBwYXRoOiBCdWlsZGVySGVhZCB8IEFTVHYxLkV4cHJlc3Npb24sXG4gIHBhcmFtcz86IEFTVHYxLkV4cHJlc3Npb25bXSxcbiAgaGFzaD86IEFTVHYxLkhhc2gsXG4gIGxvYz86IE9wdGlvbjxTb3VyY2VMb2NhdGlvbj5cbik6IEFTVHYxLkVsZW1lbnRNb2RpZmllclN0YXRlbWVudCB7XG4gIHJldHVybiB7XG4gICAgdHlwZTogJ0VsZW1lbnRNb2RpZmllclN0YXRlbWVudCcsXG4gICAgcGF0aDogYnVpbGRQYXRoKHBhdGgpLFxuICAgIHBhcmFtczogcGFyYW1zIHx8IFtdLFxuICAgIGhhc2g6IGhhc2ggfHwgYnVpbGRIYXNoKFtdKSxcbiAgICBsb2M6IGJ1aWxkTG9jKGxvYyB8fCBudWxsKSxcbiAgfTtcbn1cblxuZnVuY3Rpb24gYnVpbGRQYXJ0aWFsKFxuICBuYW1lOiBBU1R2MS5QYXRoRXhwcmVzc2lvbixcbiAgcGFyYW1zPzogQVNUdjEuRXhwcmVzc2lvbltdLFxuICBoYXNoPzogQVNUdjEuSGFzaCxcbiAgaW5kZW50Pzogc3RyaW5nLFxuICBsb2M/OiBTb3VyY2VMb2NhdGlvblxuKTogQVNUdjEuUGFydGlhbFN0YXRlbWVudCB7XG4gIHJldHVybiB7XG4gICAgdHlwZTogJ1BhcnRpYWxTdGF0ZW1lbnQnLFxuICAgIG5hbWU6IG5hbWUsXG4gICAgcGFyYW1zOiBwYXJhbXMgfHwgW10sXG4gICAgaGFzaDogaGFzaCB8fCBidWlsZEhhc2goW10pLFxuICAgIGluZGVudDogaW5kZW50IHx8ICcnLFxuICAgIHN0cmlwOiB7IG9wZW46IGZhbHNlLCBjbG9zZTogZmFsc2UgfSxcbiAgICBsb2M6IGJ1aWxkTG9jKGxvYyB8fCBudWxsKSxcbiAgfTtcbn1cblxuZnVuY3Rpb24gYnVpbGRDb21tZW50KHZhbHVlOiBzdHJpbmcsIGxvYz86IFNvdXJjZUxvY2F0aW9uKTogQVNUdjEuQ29tbWVudFN0YXRlbWVudCB7XG4gIHJldHVybiB7XG4gICAgdHlwZTogJ0NvbW1lbnRTdGF0ZW1lbnQnLFxuICAgIHZhbHVlOiB2YWx1ZSxcbiAgICBsb2M6IGJ1aWxkTG9jKGxvYyB8fCBudWxsKSxcbiAgfTtcbn1cblxuZnVuY3Rpb24gYnVpbGRNdXN0YWNoZUNvbW1lbnQodmFsdWU6IHN0cmluZywgbG9jPzogU291cmNlTG9jYXRpb24pOiBBU1R2MS5NdXN0YWNoZUNvbW1lbnRTdGF0ZW1lbnQge1xuICByZXR1cm4ge1xuICAgIHR5cGU6ICdNdXN0YWNoZUNvbW1lbnRTdGF0ZW1lbnQnLFxuICAgIHZhbHVlOiB2YWx1ZSxcbiAgICBsb2M6IGJ1aWxkTG9jKGxvYyB8fCBudWxsKSxcbiAgfTtcbn1cblxuZnVuY3Rpb24gYnVpbGRDb25jYXQoXG4gIHBhcnRzOiAoQVNUdjEuVGV4dE5vZGUgfCBBU1R2MS5NdXN0YWNoZVN0YXRlbWVudClbXSxcbiAgbG9jPzogU291cmNlTG9jYXRpb25cbik6IEFTVHYxLkNvbmNhdFN0YXRlbWVudCB7XG4gIGlmICghaXNQcmVzZW50KHBhcnRzKSkge1xuICAgIHRocm93IG5ldyBFcnJvcihgYi5jb25jYXQgcmVxdWlyZXMgYXQgbGVhc3Qgb25lIHBhcnRgKTtcbiAgfVxuXG4gIHJldHVybiB7XG4gICAgdHlwZTogJ0NvbmNhdFN0YXRlbWVudCcsXG4gICAgcGFydHM6IHBhcnRzIHx8IFtdLFxuICAgIGxvYzogYnVpbGRMb2MobG9jIHx8IG51bGwpLFxuICB9O1xufVxuXG4vLyBOb2Rlc1xuXG5leHBvcnQgdHlwZSBFbGVtZW50UGFydHMgPVxuICB8IFsnYXR0cnMnLCAuLi5BdHRyU2V4cFtdXVxuICB8IFsnbW9kaWZpZXJzJywgLi4uTW9kaWZpZXJTZXhwW11dXG4gIHwgWydib2R5JywgLi4uQVNUdjEuU3RhdGVtZW50W11dXG4gIHwgWydjb21tZW50cycsIC4uLkVsZW1lbnRDb21tZW50W11dXG4gIHwgWydhcycsIC4uLnN0cmluZ1tdXVxuICB8IFsnbG9jJywgU291cmNlTG9jYXRpb25dO1xuXG5leHBvcnQgdHlwZSBQYXRoU2V4cCA9IHN0cmluZyB8IFsncGF0aCcsIHN0cmluZywgTG9jU2V4cD9dO1xuXG5leHBvcnQgdHlwZSBNb2RpZmllclNleHAgPVxuICB8IHN0cmluZ1xuICB8IFtQYXRoU2V4cCwgTG9jU2V4cD9dXG4gIHwgW1BhdGhTZXhwLCBBU1R2MS5FeHByZXNzaW9uW10sIExvY1NleHA/XVxuICB8IFtQYXRoU2V4cCwgQVNUdjEuRXhwcmVzc2lvbltdLCBEaWN0PEFTVHYxLkV4cHJlc3Npb24+LCBMb2NTZXhwP107XG5cbmV4cG9ydCB0eXBlIEF0dHJTZXhwID0gW3N0cmluZywgQVNUdjEuQXR0ck5vZGVbJ3ZhbHVlJ10gfCBzdHJpbmcsIExvY1NleHA/XTtcblxuZXhwb3J0IHR5cGUgTG9jU2V4cCA9IFsnbG9jJywgU291cmNlTG9jYXRpb25dO1xuXG5leHBvcnQgdHlwZSBFbGVtZW50Q29tbWVudCA9IEFTVHYxLk11c3RhY2hlQ29tbWVudFN0YXRlbWVudCB8IFNvdXJjZUxvY2F0aW9uIHwgc3RyaW5nO1xuXG5leHBvcnQgdHlwZSBTZXhwVmFsdWUgPVxuICB8IHN0cmluZ1xuICB8IEFTVHYxLkV4cHJlc3Npb25bXVxuICB8IERpY3Q8QVNUdjEuRXhwcmVzc2lvbj5cbiAgfCBMb2NTZXhwXG4gIHwgUGF0aFNleHBcbiAgfCB1bmRlZmluZWQ7XG5cbmV4cG9ydCBpbnRlcmZhY2UgQnVpbGRFbGVtZW50T3B0aW9ucyB7XG4gIGF0dHJzPzogQVNUdjEuQXR0ck5vZGVbXTtcbiAgbW9kaWZpZXJzPzogQVNUdjEuRWxlbWVudE1vZGlmaWVyU3RhdGVtZW50W107XG4gIGNoaWxkcmVuPzogQVNUdjEuU3RhdGVtZW50W107XG4gIGNvbW1lbnRzPzogRWxlbWVudENvbW1lbnRbXTtcbiAgYmxvY2tQYXJhbXM/OiBzdHJpbmdbXTtcbiAgbG9jPzogU291cmNlU3Bhbjtcbn1cblxuZnVuY3Rpb24gYnVpbGRFbGVtZW50KHRhZzogVGFnRGVzY3JpcHRvciwgb3B0aW9uczogQnVpbGRFbGVtZW50T3B0aW9ucyA9IHt9KTogQVNUdjEuRWxlbWVudE5vZGUge1xuICBsZXQgeyBhdHRycywgYmxvY2tQYXJhbXMsIG1vZGlmaWVycywgY29tbWVudHMsIGNoaWxkcmVuLCBsb2MgfSA9IG9wdGlvbnM7XG5cbiAgbGV0IHRhZ05hbWU6IHN0cmluZztcblxuICAvLyB0aGlzIGlzIHVzZWQgZm9yIGJhY2t3YXJkcyBjb21wYXQsIHByaW9yIHRvIGBzZWxmQ2xvc2luZ2AgYmVpbmcgcGFydCBvZiB0aGUgRWxlbWVudE5vZGUgQVNUXG4gIGxldCBzZWxmQ2xvc2luZyA9IGZhbHNlO1xuICBpZiAodHlwZW9mIHRhZyA9PT0gJ29iamVjdCcpIHtcbiAgICBzZWxmQ2xvc2luZyA9IHRhZy5zZWxmQ2xvc2luZztcbiAgICB0YWdOYW1lID0gdGFnLm5hbWU7XG4gIH0gZWxzZSBpZiAodGFnLnNsaWNlKC0xKSA9PT0gJy8nKSB7XG4gICAgdGFnTmFtZSA9IHRhZy5zbGljZSgwLCAtMSk7XG4gICAgc2VsZkNsb3NpbmcgPSB0cnVlO1xuICB9IGVsc2Uge1xuICAgIHRhZ05hbWUgPSB0YWc7XG4gIH1cblxuICByZXR1cm4ge1xuICAgIHR5cGU6ICdFbGVtZW50Tm9kZScsXG4gICAgdGFnOiB0YWdOYW1lLFxuICAgIHNlbGZDbG9zaW5nOiBzZWxmQ2xvc2luZyxcbiAgICBhdHRyaWJ1dGVzOiBhdHRycyB8fCBbXSxcbiAgICBibG9ja1BhcmFtczogYmxvY2tQYXJhbXMgfHwgW10sXG4gICAgbW9kaWZpZXJzOiBtb2RpZmllcnMgfHwgW10sXG4gICAgY29tbWVudHM6IChjb21tZW50cyBhcyBBU1R2MS5NdXN0YWNoZUNvbW1lbnRTdGF0ZW1lbnRbXSkgfHwgW10sXG4gICAgY2hpbGRyZW46IGNoaWxkcmVuIHx8IFtdLFxuICAgIGxvYzogYnVpbGRMb2MobG9jIHx8IG51bGwpLFxuICB9O1xufVxuXG5mdW5jdGlvbiBidWlsZEF0dHIoXG4gIG5hbWU6IHN0cmluZyxcbiAgdmFsdWU6IEFTVHYxLkF0dHJOb2RlWyd2YWx1ZSddLFxuICBsb2M/OiBTb3VyY2VMb2NhdGlvblxuKTogQVNUdjEuQXR0ck5vZGUge1xuICByZXR1cm4ge1xuICAgIHR5cGU6ICdBdHRyTm9kZScsXG4gICAgbmFtZTogbmFtZSxcbiAgICB2YWx1ZTogdmFsdWUsXG4gICAgbG9jOiBidWlsZExvYyhsb2MgfHwgbnVsbCksXG4gIH07XG59XG5cbmZ1bmN0aW9uIGJ1aWxkVGV4dChjaGFycz86IHN0cmluZywgbG9jPzogU291cmNlTG9jYXRpb24pOiBBU1R2MS5UZXh0Tm9kZSB7XG4gIHJldHVybiB7XG4gICAgdHlwZTogJ1RleHROb2RlJyxcbiAgICBjaGFyczogY2hhcnMgfHwgJycsXG4gICAgbG9jOiBidWlsZExvYyhsb2MgfHwgbnVsbCksXG4gIH07XG59XG5cbi8vIEV4cHJlc3Npb25zXG5cbmZ1bmN0aW9uIGJ1aWxkU2V4cHIoXG4gIHBhdGg6IEJ1aWxkZXJIZWFkLFxuICBwYXJhbXM/OiBBU1R2MS5FeHByZXNzaW9uW10sXG4gIGhhc2g/OiBBU1R2MS5IYXNoLFxuICBsb2M/OiBTb3VyY2VMb2NhdGlvblxuKTogQVNUdjEuU3ViRXhwcmVzc2lvbiB7XG4gIHJldHVybiB7XG4gICAgdHlwZTogJ1N1YkV4cHJlc3Npb24nLFxuICAgIHBhdGg6IGJ1aWxkUGF0aChwYXRoKSxcbiAgICBwYXJhbXM6IHBhcmFtcyB8fCBbXSxcbiAgICBoYXNoOiBoYXNoIHx8IGJ1aWxkSGFzaChbXSksXG4gICAgbG9jOiBidWlsZExvYyhsb2MgfHwgbnVsbCksXG4gIH07XG59XG5cbmZ1bmN0aW9uIGhlYWRUb1N0cmluZyhoZWFkOiBBU1R2MS5QYXRoSGVhZCk6IHsgb3JpZ2luYWw6IHN0cmluZzsgcGFydHM6IHN0cmluZ1tdIH0ge1xuICBzd2l0Y2ggKGhlYWQudHlwZSkge1xuICAgIGNhc2UgJ0F0SGVhZCc6XG4gICAgICByZXR1cm4geyBvcmlnaW5hbDogaGVhZC5uYW1lLCBwYXJ0czogW2hlYWQubmFtZV0gfTtcbiAgICBjYXNlICdUaGlzSGVhZCc6XG4gICAgICByZXR1cm4geyBvcmlnaW5hbDogYHRoaXNgLCBwYXJ0czogW10gfTtcbiAgICBjYXNlICdWYXJIZWFkJzpcbiAgICAgIHJldHVybiB7IG9yaWdpbmFsOiBoZWFkLm5hbWUsIHBhcnRzOiBbaGVhZC5uYW1lXSB9O1xuICB9XG59XG5cbmZ1bmN0aW9uIGJ1aWxkSGVhZChcbiAgb3JpZ2luYWw6IHN0cmluZyxcbiAgbG9jOiBTb3VyY2VMb2NhdGlvblxuKTogeyBoZWFkOiBBU1R2MS5QYXRoSGVhZDsgdGFpbDogc3RyaW5nW10gfSB7XG4gIGxldCBbaGVhZCwgLi4udGFpbF0gPSBvcmlnaW5hbC5zcGxpdCgnLicpO1xuICBsZXQgaGVhZE5vZGU6IEFTVHYxLlBhdGhIZWFkO1xuXG4gIGlmIChoZWFkID09PSAndGhpcycpIHtcbiAgICBoZWFkTm9kZSA9IHtcbiAgICAgIHR5cGU6ICdUaGlzSGVhZCcsXG4gICAgICBsb2M6IGJ1aWxkTG9jKGxvYyB8fCBudWxsKSxcbiAgICB9O1xuICB9IGVsc2UgaWYgKGhlYWRbMF0gPT09ICdAJykge1xuICAgIGhlYWROb2RlID0ge1xuICAgICAgdHlwZTogJ0F0SGVhZCcsXG4gICAgICBuYW1lOiBoZWFkLFxuICAgICAgbG9jOiBidWlsZExvYyhsb2MgfHwgbnVsbCksXG4gICAgfTtcbiAgfSBlbHNlIHtcbiAgICBoZWFkTm9kZSA9IHtcbiAgICAgIHR5cGU6ICdWYXJIZWFkJyxcbiAgICAgIG5hbWU6IGhlYWQsXG4gICAgICBsb2M6IGJ1aWxkTG9jKGxvYyB8fCBudWxsKSxcbiAgICB9O1xuICB9XG5cbiAgcmV0dXJuIHtcbiAgICBoZWFkOiBoZWFkTm9kZSxcbiAgICB0YWlsLFxuICB9O1xufVxuXG5mdW5jdGlvbiBidWlsZFRoaXMobG9jOiBTb3VyY2VMb2NhdGlvbik6IEFTVHYxLlBhdGhIZWFkIHtcbiAgcmV0dXJuIHtcbiAgICB0eXBlOiAnVGhpc0hlYWQnLFxuICAgIGxvYzogYnVpbGRMb2MobG9jIHx8IG51bGwpLFxuICB9O1xufVxuXG5mdW5jdGlvbiBidWlsZEF0TmFtZShuYW1lOiBzdHJpbmcsIGxvYzogU291cmNlTG9jYXRpb24pOiBBU1R2MS5QYXRoSGVhZCB7XG4gIC8vIHRoZSBgQGAgc2hvdWxkIGJlIGluY2x1ZGVkIHNvIHdlIGhhdmUgYSBjb21wbGV0ZSBzb3VyY2UgcmFuZ2VcbiAgYXNzZXJ0KG5hbWVbMF0gPT09ICdAJywgYGNhbGwgYnVpbGRlcnMuYXQoKSB3aXRoIGEgc3RyaW5nIHRoYXQgc3RhcnRzIHdpdGggJ0AnYCk7XG5cbiAgcmV0dXJuIHtcbiAgICB0eXBlOiAnQXRIZWFkJyxcbiAgICBuYW1lLFxuICAgIGxvYzogYnVpbGRMb2MobG9jIHx8IG51bGwpLFxuICB9O1xufVxuXG5mdW5jdGlvbiBidWlsZFZhcihuYW1lOiBzdHJpbmcsIGxvYzogU291cmNlTG9jYXRpb24pOiBBU1R2MS5QYXRoSGVhZCB7XG4gIGFzc2VydChuYW1lICE9PSAndGhpcycsIGBZb3UgY2FsbGVkIGJ1aWxkZXJzLnZhcigpIHdpdGggJ3RoaXMnLiBDYWxsIGJ1aWxkZXJzLnRoaXMgaW5zdGVhZGApO1xuICBhc3NlcnQoXG4gICAgbmFtZVswXSAhPT0gJ0AnLFxuICAgIGBZb3UgY2FsbGVkIGJ1aWxkZXJzLnZhcigpIHdpdGggJyR7bmFtZX0nLiBDYWxsIGJ1aWxkZXJzLmF0KCcke25hbWV9JykgaW5zdGVhZGBcbiAgKTtcblxuICByZXR1cm4ge1xuICAgIHR5cGU6ICdWYXJIZWFkJyxcbiAgICBuYW1lLFxuICAgIGxvYzogYnVpbGRMb2MobG9jIHx8IG51bGwpLFxuICB9O1xufVxuXG5mdW5jdGlvbiBidWlsZEhlYWRGcm9tU3RyaW5nKGhlYWQ6IHN0cmluZywgbG9jOiBTb3VyY2VMb2NhdGlvbik6IEFTVHYxLlBhdGhIZWFkIHtcbiAgaWYgKGhlYWRbMF0gPT09ICdAJykge1xuICAgIHJldHVybiBidWlsZEF0TmFtZShoZWFkLCBsb2MpO1xuICB9IGVsc2UgaWYgKGhlYWQgPT09ICd0aGlzJykge1xuICAgIHJldHVybiBidWlsZFRoaXMobG9jKTtcbiAgfSBlbHNlIHtcbiAgICByZXR1cm4gYnVpbGRWYXIoaGVhZCwgbG9jKTtcbiAgfVxufVxuXG5mdW5jdGlvbiBidWlsZE5hbWVkQmxvY2tOYW1lKG5hbWU6IHN0cmluZywgbG9jPzogU291cmNlTG9jYXRpb24pOiBBU1R2MS5OYW1lZEJsb2NrTmFtZSB7XG4gIHJldHVybiB7XG4gICAgdHlwZTogJ05hbWVkQmxvY2tOYW1lJyxcbiAgICBuYW1lLFxuICAgIGxvYzogYnVpbGRMb2MobG9jIHx8IG51bGwpLFxuICB9O1xufVxuXG5mdW5jdGlvbiBidWlsZENsZWFuUGF0aChcbiAgaGVhZDogQVNUdjEuUGF0aEhlYWQsXG4gIHRhaWw6IHN0cmluZ1tdLFxuICBsb2M6IFNvdXJjZUxvY2F0aW9uXG4pOiBBU1R2MS5QYXRoRXhwcmVzc2lvbiB7XG4gIGxldCB7IG9yaWdpbmFsOiBvcmlnaW5hbEhlYWQsIHBhcnRzOiBoZWFkUGFydHMgfSA9IGhlYWRUb1N0cmluZyhoZWFkKTtcbiAgbGV0IHBhcnRzID0gWy4uLmhlYWRQYXJ0cywgLi4udGFpbF07XG4gIGxldCBvcmlnaW5hbCA9IFsuLi5vcmlnaW5hbEhlYWQsIC4uLnBhcnRzXS5qb2luKCcuJyk7XG5cbiAgcmV0dXJuIG5ldyBQYXRoRXhwcmVzc2lvbkltcGxWMShvcmlnaW5hbCwgaGVhZCwgdGFpbCwgYnVpbGRMb2MobG9jIHx8IG51bGwpKTtcbn1cblxuZnVuY3Rpb24gYnVpbGRQYXRoKFxuICBwYXRoOiBBU1R2MS5QYXRoRXhwcmVzc2lvbiB8IHN0cmluZyB8IHsgaGVhZDogc3RyaW5nOyB0YWlsOiBzdHJpbmdbXSB9LFxuICBsb2M/OiBTb3VyY2VMb2NhdGlvblxuKTogQVNUdjEuUGF0aEV4cHJlc3Npb247XG5mdW5jdGlvbiBidWlsZFBhdGgocGF0aDogQVNUdjEuRXhwcmVzc2lvbiwgbG9jPzogU291cmNlTG9jYXRpb24pOiBBU1R2MS5FeHByZXNzaW9uO1xuZnVuY3Rpb24gYnVpbGRQYXRoKHBhdGg6IEJ1aWxkZXJIZWFkIHwgQVNUdjEuRXhwcmVzc2lvbiwgbG9jPzogU291cmNlTG9jYXRpb24pOiBBU1R2MS5FeHByZXNzaW9uO1xuZnVuY3Rpb24gYnVpbGRQYXRoKFxuICBwYXRoOiBCdWlsZGVySGVhZCB8IEFTVHYxLkV4cHJlc3Npb24gfCB7IGhlYWQ6IHN0cmluZzsgdGFpbDogc3RyaW5nW10gfSxcbiAgbG9jPzogU291cmNlTG9jYXRpb25cbik6IEFTVHYxLkV4cHJlc3Npb24ge1xuICBpZiAodHlwZW9mIHBhdGggIT09ICdzdHJpbmcnKSB7XG4gICAgaWYgKCd0eXBlJyBpbiBwYXRoKSB7XG4gICAgICByZXR1cm4gcGF0aDtcbiAgICB9IGVsc2Uge1xuICAgICAgbGV0IHsgaGVhZCwgdGFpbCB9ID0gYnVpbGRIZWFkKHBhdGguaGVhZCwgU291cmNlU3Bhbi5icm9rZW4oKSk7XG5cbiAgICAgIGFzc2VydChcbiAgICAgICAgdGFpbC5sZW5ndGggPT09IDAsXG4gICAgICAgIGBidWlsZGVyLnBhdGgoeyBoZWFkLCB0YWlsIH0pIHNob3VsZCBub3QgYmUgY2FsbGVkIHdpdGggYSBoZWFkIHdpdGggZG90cyBpbiBpdGBcbiAgICAgICk7XG5cbiAgICAgIGxldCB7IG9yaWdpbmFsOiBvcmlnaW5hbEhlYWQgfSA9IGhlYWRUb1N0cmluZyhoZWFkKTtcblxuICAgICAgcmV0dXJuIG5ldyBQYXRoRXhwcmVzc2lvbkltcGxWMShcbiAgICAgICAgW29yaWdpbmFsSGVhZCwgLi4udGFpbF0uam9pbignLicpLFxuICAgICAgICBoZWFkLFxuICAgICAgICB0YWlsLFxuICAgICAgICBidWlsZExvYyhsb2MgfHwgbnVsbClcbiAgICAgICk7XG4gICAgfVxuICB9XG5cbiAgbGV0IHsgaGVhZCwgdGFpbCB9ID0gYnVpbGRIZWFkKHBhdGgsIFNvdXJjZVNwYW4uYnJva2VuKCkpO1xuXG4gIHJldHVybiBuZXcgUGF0aEV4cHJlc3Npb25JbXBsVjEocGF0aCwgaGVhZCwgdGFpbCwgYnVpbGRMb2MobG9jIHx8IG51bGwpKTtcbn1cblxuZnVuY3Rpb24gYnVpbGRMaXRlcmFsPFQgZXh0ZW5kcyBBU1R2MS5MaXRlcmFsPihcbiAgdHlwZTogVFsndHlwZSddLFxuICB2YWx1ZTogVFsndmFsdWUnXSxcbiAgbG9jPzogU291cmNlTG9jYXRpb25cbik6IFQge1xuICByZXR1cm4ge1xuICAgIHR5cGUsXG4gICAgdmFsdWUsXG4gICAgb3JpZ2luYWw6IHZhbHVlLFxuICAgIGxvYzogYnVpbGRMb2MobG9jIHx8IG51bGwpLFxuICB9IGFzIFQ7XG59XG5cbi8vIE1pc2NlbGxhbmVvdXNcblxuZnVuY3Rpb24gYnVpbGRIYXNoKHBhaXJzPzogQVNUdjEuSGFzaFBhaXJbXSwgbG9jPzogU291cmNlTG9jYXRpb24pOiBBU1R2MS5IYXNoIHtcbiAgcmV0dXJuIHtcbiAgICB0eXBlOiAnSGFzaCcsXG4gICAgcGFpcnM6IHBhaXJzIHx8IFtdLFxuICAgIGxvYzogYnVpbGRMb2MobG9jIHx8IG51bGwpLFxuICB9O1xufVxuXG5mdW5jdGlvbiBidWlsZFBhaXIoa2V5OiBzdHJpbmcsIHZhbHVlOiBBU1R2MS5FeHByZXNzaW9uLCBsb2M/OiBTb3VyY2VMb2NhdGlvbik6IEFTVHYxLkhhc2hQYWlyIHtcbiAgcmV0dXJuIHtcbiAgICB0eXBlOiAnSGFzaFBhaXInLFxuICAgIGtleToga2V5LFxuICAgIHZhbHVlLFxuICAgIGxvYzogYnVpbGRMb2MobG9jIHx8IG51bGwpLFxuICB9O1xufVxuXG5mdW5jdGlvbiBidWlsZFByb2dyYW0oXG4gIGJvZHk/OiBBU1R2MS5TdGF0ZW1lbnRbXSxcbiAgYmxvY2tQYXJhbXM/OiBzdHJpbmdbXSxcbiAgbG9jPzogU291cmNlTG9jYXRpb25cbik6IEFTVHYxLlRlbXBsYXRlIHtcbiAgcmV0dXJuIHtcbiAgICB0eXBlOiAnVGVtcGxhdGUnLFxuICAgIGJvZHk6IGJvZHkgfHwgW10sXG4gICAgYmxvY2tQYXJhbXM6IGJsb2NrUGFyYW1zIHx8IFtdLFxuICAgIGxvYzogYnVpbGRMb2MobG9jIHx8IG51bGwpLFxuICB9O1xufVxuXG5mdW5jdGlvbiBidWlsZEJsb2NrSXRzZWxmKFxuICBib2R5PzogQVNUdjEuU3RhdGVtZW50W10sXG4gIGJsb2NrUGFyYW1zPzogc3RyaW5nW10sXG4gIGNoYWluZWQgPSBmYWxzZSxcbiAgbG9jPzogU291cmNlTG9jYXRpb25cbik6IEFTVHYxLkJsb2NrIHtcbiAgcmV0dXJuIHtcbiAgICB0eXBlOiAnQmxvY2snLFxuICAgIGJvZHk6IGJvZHkgfHwgW10sXG4gICAgYmxvY2tQYXJhbXM6IGJsb2NrUGFyYW1zIHx8IFtdLFxuICAgIGNoYWluZWQsXG4gICAgbG9jOiBidWlsZExvYyhsb2MgfHwgbnVsbCksXG4gIH07XG59XG5cbmZ1bmN0aW9uIGJ1aWxkVGVtcGxhdGUoXG4gIGJvZHk/OiBBU1R2MS5TdGF0ZW1lbnRbXSxcbiAgYmxvY2tQYXJhbXM/OiBzdHJpbmdbXSxcbiAgbG9jPzogU291cmNlTG9jYXRpb25cbik6IEFTVHYxLlRlbXBsYXRlIHtcbiAgcmV0dXJuIHtcbiAgICB0eXBlOiAnVGVtcGxhdGUnLFxuICAgIGJvZHk6IGJvZHkgfHwgW10sXG4gICAgYmxvY2tQYXJhbXM6IGJsb2NrUGFyYW1zIHx8IFtdLFxuICAgIGxvYzogYnVpbGRMb2MobG9jIHx8IG51bGwpLFxuICB9O1xufVxuXG5mdW5jdGlvbiBidWlsZFBvc2l0aW9uKGxpbmU6IG51bWJlciwgY29sdW1uOiBudW1iZXIpOiBTb3VyY2VQb3NpdGlvbiB7XG4gIHJldHVybiB7XG4gICAgbGluZSxcbiAgICBjb2x1bW4sXG4gIH07XG59XG5cbmZ1bmN0aW9uIGJ1aWxkTG9jKGxvYzogT3B0aW9uPFNvdXJjZUxvY2F0aW9uPik6IFNvdXJjZVNwYW47XG5mdW5jdGlvbiBidWlsZExvYyhcbiAgc3RhcnRMaW5lOiBudW1iZXIsXG4gIHN0YXJ0Q29sdW1uOiBudW1iZXIsXG4gIGVuZExpbmU/OiBudW1iZXIsXG4gIGVuZENvbHVtbj86IG51bWJlcixcbiAgc291cmNlPzogc3RyaW5nXG4pOiBTb3VyY2VTcGFuO1xuXG5mdW5jdGlvbiBidWlsZExvYyguLi5hcmdzOiBhbnlbXSk6IFNvdXJjZVNwYW4ge1xuICBpZiAoYXJncy5sZW5ndGggPT09IDEpIHtcbiAgICBsZXQgbG9jID0gYXJnc1swXTtcblxuICAgIGlmIChsb2MgJiYgdHlwZW9mIGxvYyA9PT0gJ29iamVjdCcpIHtcbiAgICAgIHJldHVybiBTb3VyY2VTcGFuLmZvckhic0xvYyhTT1VSQ0UoKSwgbG9jKTtcbiAgICB9IGVsc2Uge1xuICAgICAgcmV0dXJuIFNvdXJjZVNwYW4uZm9ySGJzTG9jKFNPVVJDRSgpLCBTWU5USEVUSUNfTE9DQVRJT04pO1xuICAgIH1cbiAgfSBlbHNlIHtcbiAgICBsZXQgW3N0YXJ0TGluZSwgc3RhcnRDb2x1bW4sIGVuZExpbmUsIGVuZENvbHVtbiwgX3NvdXJjZV0gPSBhcmdzO1xuICAgIGxldCBzb3VyY2UgPSBfc291cmNlID8gbmV3IFNvdXJjZSgnJywgX3NvdXJjZSkgOiBTT1VSQ0UoKTtcblxuICAgIHJldHVybiBTb3VyY2VTcGFuLmZvckhic0xvYyhzb3VyY2UsIHtcbiAgICAgIHN0YXJ0OiB7XG4gICAgICAgIGxpbmU6IHN0YXJ0TGluZSxcbiAgICAgICAgY29sdW1uOiBzdGFydENvbHVtbixcbiAgICAgIH0sXG4gICAgICBlbmQ6IHtcbiAgICAgICAgbGluZTogZW5kTGluZSxcbiAgICAgICAgY29sdW1uOiBlbmRDb2x1bW4sXG4gICAgICB9LFxuICAgIH0pO1xuICB9XG59XG5cbmV4cG9ydCBkZWZhdWx0IHtcbiAgbXVzdGFjaGU6IGJ1aWxkTXVzdGFjaGUsXG4gIGJsb2NrOiBidWlsZEJsb2NrLFxuICBwYXJ0aWFsOiBidWlsZFBhcnRpYWwsXG4gIGNvbW1lbnQ6IGJ1aWxkQ29tbWVudCxcbiAgbXVzdGFjaGVDb21tZW50OiBidWlsZE11c3RhY2hlQ29tbWVudCxcbiAgZWxlbWVudDogYnVpbGRFbGVtZW50LFxuICBlbGVtZW50TW9kaWZpZXI6IGJ1aWxkRWxlbWVudE1vZGlmaWVyLFxuICBhdHRyOiBidWlsZEF0dHIsXG4gIHRleHQ6IGJ1aWxkVGV4dCxcbiAgc2V4cHI6IGJ1aWxkU2V4cHIsXG5cbiAgY29uY2F0OiBidWlsZENvbmNhdCxcbiAgaGFzaDogYnVpbGRIYXNoLFxuICBwYWlyOiBidWlsZFBhaXIsXG4gIGxpdGVyYWw6IGJ1aWxkTGl0ZXJhbCxcbiAgcHJvZ3JhbTogYnVpbGRQcm9ncmFtLFxuICBibG9ja0l0c2VsZjogYnVpbGRCbG9ja0l0c2VsZixcbiAgdGVtcGxhdGU6IGJ1aWxkVGVtcGxhdGUsXG4gIGxvYzogYnVpbGRMb2MsXG4gIHBvczogYnVpbGRQb3NpdGlvbixcblxuICBwYXRoOiBidWlsZFBhdGgsXG5cbiAgZnVsbFBhdGg6IGJ1aWxkQ2xlYW5QYXRoLFxuICBoZWFkOiBidWlsZEhlYWRGcm9tU3RyaW5nLFxuICBhdDogYnVpbGRBdE5hbWUsXG4gIHZhcjogYnVpbGRWYXIsXG4gIHRoaXM6IGJ1aWxkVGhpcyxcbiAgYmxvY2tOYW1lOiBidWlsZE5hbWVkQmxvY2tOYW1lLFxuXG4gIHN0cmluZzogbGl0ZXJhbCgnU3RyaW5nTGl0ZXJhbCcpIGFzICh2YWx1ZTogc3RyaW5nKSA9PiBBU1R2MS5TdHJpbmdMaXRlcmFsLFxuICBib29sZWFuOiBsaXRlcmFsKCdCb29sZWFuTGl0ZXJhbCcpIGFzICh2YWx1ZTogYm9vbGVhbikgPT4gQVNUdjEuQm9vbGVhbkxpdGVyYWwsXG4gIG51bWJlcjogbGl0ZXJhbCgnTnVtYmVyTGl0ZXJhbCcpIGFzICh2YWx1ZTogbnVtYmVyKSA9PiBBU1R2MS5OdW1iZXJMaXRlcmFsLFxuICB1bmRlZmluZWQoKTogQVNUdjEuVW5kZWZpbmVkTGl0ZXJhbCB7XG4gICAgcmV0dXJuIGJ1aWxkTGl0ZXJhbCgnVW5kZWZpbmVkTGl0ZXJhbCcsIHVuZGVmaW5lZCk7XG4gIH0sXG4gIG51bGwoKTogQVNUdjEuTnVsbExpdGVyYWwge1xuICAgIHJldHVybiBidWlsZExpdGVyYWwoJ051bGxMaXRlcmFsJywgbnVsbCk7XG4gIH0sXG59O1xuXG50eXBlIEJ1aWxkTGl0ZXJhbDxUIGV4dGVuZHMgQVNUdjEuTGl0ZXJhbD4gPSAodmFsdWU6IFRbJ3ZhbHVlJ10pID0+IFQ7XG5cbmZ1bmN0aW9uIGxpdGVyYWw8VCBleHRlbmRzIEFTVHYxLkxpdGVyYWw+KHR5cGU6IFRbJ3R5cGUnXSk6IEJ1aWxkTGl0ZXJhbDxUPiB7XG4gIHJldHVybiBmdW5jdGlvbiAodmFsdWU6IFRbJ3ZhbHVlJ10sIGxvYz86IFNvdXJjZUxvY2F0aW9uKTogVCB7XG4gICAgcmV0dXJuIGJ1aWxkTGl0ZXJhbCh0eXBlLCB2YWx1ZSwgbG9jKTtcbiAgfTtcbn1cbiJdLCJzb3VyY2VSb290IjoiIn0=

@@ -146,8 +146,13 @@ import { assert, assign, deprecate, isPresent } from '@glimmer/util';

function buildElement(tag, options) {
var attrs = options.attrs,
blockParams = options.blockParams,
modifiers = options.modifiers,
comments = options.comments,
children = options.children,
loc = options.loc;
if (options === void 0) {
options = {};
}
var _options = options,
attrs = _options.attrs,
blockParams = _options.blockParams,
modifiers = _options.modifiers,
comments = _options.comments,
children = _options.children,
loc = _options.loc;
var tagName; // this is used for backwards compat, prior to `selfClosing` being part of the ElementNode AST

@@ -494,2 +499,2 @@

}
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3BhY2thZ2VzL0BnbGltbWVyL3N5bnRheC9saWIvdjEvcHVibGljLWJ1aWxkZXJzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUVBLFNBQUEsTUFBQSxFQUFBLE1BQUEsRUFBQSxTQUFBLEVBQUEsU0FBQSxRQUFBLGVBQUE7QUFFQSxTQUFBLGtCQUFBLFFBQUEsb0JBQUE7QUFDQSxTQUFBLE1BQUEsUUFBQSxrQkFBQTtBQUNBLFNBQUEsVUFBQSxRQUFBLGdCQUFBO0FBRUEsU0FBQSxvQkFBQSxRQUFBLGtCQUFBOztBQUVBLElBQUEsT0FBQTs7QUFFQSxTQUFBLE1BQUEsR0FBZTtBQUNiLE1BQUksQ0FBSixPQUFBLEVBQWM7QUFDWixJQUFBLE9BQU8sR0FBRyxJQUFBLE1BQUEsQ0FBQSxFQUFBLEVBQVYsYUFBVSxDQUFWO0FBQ0Q7O0FBRUQsU0FBQSxPQUFBO0FBQ0Q7O0FBU0QsU0FBQSxhQUFBLENBQUEsSUFBQSxFQUFBLE1BQUEsRUFBQSxJQUFBLEVBQUEsR0FBQSxFQUFBLEdBQUEsRUFBQSxLQUFBLEVBTTBCO0FBRXhCLE1BQUksT0FBQSxJQUFBLEtBQUosUUFBQSxFQUE4QjtBQUM1QixJQUFBLElBQUksR0FBRyxTQUFTLENBQWhCLElBQWdCLENBQWhCO0FBQ0Q7O0FBRUQsU0FBTztBQUNMLElBQUEsSUFBSSxFQURDLG1CQUFBO0FBRUwsSUFBQSxJQUZLLEVBRUwsSUFGSztBQUdMLElBQUEsTUFBTSxFQUFFLE1BQU0sSUFIVCxFQUFBO0FBSUwsSUFBQSxJQUFJLEVBQUUsSUFBSSxJQUFJLFNBQVMsQ0FKbEIsRUFJa0IsQ0FKbEI7QUFLTCxJQUFBLE9BQU8sRUFBRSxDQUxKLEdBQUE7QUFNTCxJQUFBLFFBQVEsRUFBRSxDQUFDLENBTk4sR0FBQTtBQU9MLElBQUEsR0FBRyxFQUFFLFFBQVEsQ0FBQyxHQUFHLElBUFosSUFPUSxDQVBSO0FBUUwsSUFBQSxLQUFLLEVBQUUsS0FBSyxJQUFJO0FBQUUsTUFBQSxJQUFJLEVB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QUFjYixFQUFBLElBQUksRUFkUyxTQUFBO0FBZWIsRUFBQSxPQUFPLEVBZk0sWUFBQTtBQWdCYixFQUFBLE9BQU8sRUFoQk0sWUFBQTtBQWlCYixFQUFBLFdBQVcsRUFqQkUsZ0JBQUE7QUFrQmIsRUFBQSxRQUFRLEVBbEJLLGFBQUE7QUFtQmIsRUFBQSxHQUFHLEVBbkJVLFFBQUE7QUFvQmIsRUFBQSxHQUFHLEVBcEJVLGFBQUE7QUFzQmIsRUFBQSxJQUFJLEVBdEJTLFNBQUE7QUF3QmIsRUFBQSxRQUFRLEVBeEJLLGNBQUE7QUF5QmIsRUFBQSxJQUFJLEVBekJTLG1CQUFBO0FBMEJiLEVBQUEsRUFBRSxFQTFCVyxXQUFBO0FBMkJiLFNBM0JhLFFBQUE7QUE0QmIsVUE1QmEsU0FBQTtBQTZCYixFQUFBLFNBQVMsRUE3QkksbUJBQUE7QUErQmIsRUFBQSxNQUFNLEVBQUUsT0FBTyxDQS9CRixlQStCRSxDQS9CRjtBQWdDYixhQUFTLE9BQU8sQ0FoQ0gsZ0JBZ0NHLENBaENIO0FBaUNiLEVBQUEsTUFBTSxFQUFFLE9BQU8sQ0FqQ0YsZUFpQ0UsQ0FqQ0Y7QUFrQ2IsRUFBQSxTQWxDYTtBQUFBO0FBQUE7QUFBQTs7QUFBQTtBQUFBO0FBQUE7O0FBQUE7QUFBQSxnQkFrQ0o7QUFDUCxXQUFPLFlBQVksQ0FBQSxrQkFBQSxFQUFuQixTQUFtQixDQUFuQjtBQW5DVyxHQUFBO0FBQUEsMkJBcUNUO0FBQ0YsV0FBTyxZQUFZLENBQUEsYUFBQSxFQUFuQixJQUFtQixDQUFuQjtBQUNEO0FBdkNZLENBQWY7O0FBNENBLFNBQUEsT0FBQSxDQUFBLElBQUEsRUFBeUQ7QUFDdkQsU0FBTyxVQUFBLEtBQUEsRUFBQSxHQUFBLEVBQWlEO0FBQ3RELFdBQU8sWUFBWSxDQUFBLElBQUEsRUFBQSxLQUFBLEVBQW5CLEdBQW1CLENBQW5CO0FBREYsR0FBQTtBQUdEIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgRGljdCwgT3B0aW9uIH0gZnJvbSAnQGdsaW1tZXIvaW50ZXJmYWNlcyc7XG5pbXBvcnQgeyBMT0NBTF9ERUJVRyB9IGZyb20gJ0BnbGltbWVyL2xvY2FsLWRlYnVnLWZsYWdzJztcbmltcG9ydCB7IGFzc2VydCwgYXNzaWduLCBkZXByZWNhdGUsIGlzUHJlc2VudCB9IGZyb20gJ0BnbGltbWVyL3V0aWwnO1xuXG5pbXBvcnQgeyBTb3VyY2VMb2NhdGlvbiwgU291cmNlUG9zaXRpb24sIFNZTlRIRVRJQ19MT0NBVElPTiB9IGZyb20gJy4uL3NvdXJjZS9sb2NhdGlvbic7XG5pbXBvcnQgeyBTb3VyY2UgfSBmcm9tICcuLi9zb3VyY2Uvc291cmNlJztcbmltcG9ydCB7IFNvdXJjZVNwYW4gfSBmcm9tICcuLi9zb3VyY2Uvc3Bhbic7XG5pbXBvcnQgKiBhcyBBU1R2MSBmcm9tICcuL2FwaSc7XG5pbXBvcnQgeyBQYXRoRXhwcmVzc2lvbkltcGxWMSB9IGZyb20gJy4vbGVnYWN5LWludGVyb3AnO1xuXG5sZXQgX1NPVVJDRTogU291cmNlIHwgdW5kZWZpbmVkO1xuXG5mdW5jdGlvbiBTT1VSQ0UoKTogU291cmNlIHtcbiAgaWYgKCFfU09VUkNFKSB7XG4gICAgX1NPVVJDRSA9IG5ldyBTb3VyY2UoJycsICcoc3ludGhldGljKScpO1xuICB9XG5cbiAgcmV0dXJuIF9TT1VSQ0U7XG59XG5cbi8vIGNvbnN0IFNPVVJDRSA9IG5ldyBTb3VyY2UoJycsICcodGVzdHMpJyk7XG5cbi8vIFN0YXRlbWVudHNcblxuZXhwb3J0IHR5cGUgQnVpbGRlckhlYWQgPSBzdHJpbmcgfCBBU1R2MS5FeHByZXNzaW9uO1xuZXhwb3J0IHR5cGUgVGFnRGVzY3JpcHRvciA9IHN0cmluZyB8IHsgbmFtZTogc3RyaW5nOyBzZWxmQ2xvc2luZzogYm9vbGVhbiB9O1xuXG5mdW5jdGlvbiBidWlsZE11c3RhY2hlKFxuICBwYXRoOiBCdWlsZGVySGVhZCB8IEFTVHYxLkxpdGVyYWwsXG4gIHBhcmFtcz86IEFTVHYxLkV4cHJlc3Npb25bXSxcbiAgaGFzaD86IEFTVHYxLkhhc2gsXG4gIHJhdz86IGJvb2xlYW4sXG4gIGxvYz86IFNvdXJjZUxvY2F0aW9uLFxuICBzdHJpcD86IEFTVHYxLlN0cmlwRmxhZ3Ncbik6IEFTVHYxLk11c3RhY2hlU3RhdGVtZW50IHtcbiAgaWYgKHR5cGVvZiBwYXRoID09PSAnc3RyaW5nJykge1xuICAgIHBhdGggPSBidWlsZFBhdGgocGF0aCk7XG4gIH1cblxuICByZXR1cm4ge1xuICAgIHR5cGU6ICdNdXN0YWNoZVN0YXRlbWVudCcsXG4gICAgcGF0aCxcbiAgICBwYXJhbXM6IHBhcmFtcyB8fCBbXSxcbiAgICBoYXNoOiBoYXNoIHx8IGJ1aWxkSGFzaChbXSksXG4gICAgZXNjYXBlZDogIXJhdyxcbiAgICB0cnVzdGluZzogISFyYXcsXG4gICAgbG9jOiBidWlsZExvYyhsb2MgfHwgbnVsbCksXG4gICAgc3RyaXA6IHN0cmlwIHx8IHsgb3BlbjogZmFsc2UsIGNsb3NlOiBmYWxzZSB9LFxuICB9O1xufVxuXG5mdW5jdGlvbiBidWlsZEJsb2NrKFxuICBwYXRoOiBCdWlsZGVySGVhZCxcbiAgcGFyYW1zOiBPcHRpb248QVNUdjEuRXhwcmVzc2lvbltdPixcbiAgaGFzaDogT3B0aW9uPEFTVHYxLkhhc2g+LFxuICBfZGVmYXVsdEJsb2NrOiBBU1R2MS5Qb3NzaWJseURlcHJlY2F0ZWRCbG9jayxcbiAgX2Vsc2VCbG9jaz86IE9wdGlvbjxBU1R2MS5Qb3NzaWJseURlcHJlY2F0ZWRCbG9jaz4sXG4gIGxvYz86IFNvdXJjZUxvY2F0aW9uLFxuICBvcGVuU3RyaXA/OiBBU1R2MS5TdHJpcEZsYWdzLFxuICBpbnZlcnNlU3RyaXA/OiBBU1R2MS5TdHJpcEZsYWdzLFxuICBjbG9zZVN0cmlwPzogQVNUdjEuU3RyaXBGbGFnc1xuKTogQVNUdjEuQmxvY2tTdGF0ZW1lbnQge1xuICBsZXQgZGVmYXVsdEJsb2NrOiBBU1R2MS5CbG9jaztcbiAgbGV0IGVsc2VCbG9jazogT3B0aW9uPEFTVHYxLkJsb2NrPiB8IHVuZGVmaW5lZDtcblxuICBpZiAoX2RlZmF1bHRCbG9jay50eXBlID09PSAnVGVtcGxhdGUnKSB7XG4gICAgaWYgKExPQ0FMX0RFQlVHKSB7XG4gICAgICBkZXByZWNhdGUoYGIucHJvZ3JhbSBpcyBkZXByZWNhdGVkLiBVc2UgYi5ibG9ja0l0c2VsZiBpbnN0ZWFkLmApO1xuICAgIH1cblxuICAgIGRlZmF1bHRCbG9jayA9IChhc3NpZ24oe30sIF9kZWZhdWx0QmxvY2ssIHsgdHlwZTogJ0Jsb2NrJyB9KSBhcyB1bmtub3duKSBhcyBBU1R2MS5CbG9jaztcbiAgfSBlbHNlIHtcbiAgICBkZWZhdWx0QmxvY2sgPSBfZGVmYXVsdEJsb2NrO1xuICB9XG5cbiAgaWYgKF9lbHNlQmxvY2sgIT09IHVuZGVmaW5lZCAmJiBfZWxzZUJsb2NrICE9PSBudWxsICYmIF9lbHNlQmxvY2sudHlwZSA9PT0gJ1RlbXBsYXRlJykge1xuICAgIGlmIChMT0NBTF9ERUJVRykge1xuICAgICAgZGVwcmVjYXRlKGBiLnByb2dyYW0gaXMgZGVwcmVjYXRlZC4gVXNlIGIuYmxvY2tJdHNlbGYgaW5zdGVhZC5gKTtcbiAgICB9XG5cbiAgICBlbHNlQmxvY2sgPSAoYXNzaWduKHt9LCBfZWxzZUJsb2NrLCB7IHR5cGU6ICdCbG9jaycgfSkgYXMgdW5rbm93bikgYXMgQVNUdjEuQmxvY2s7XG4gIH0gZWxzZSB7XG4gICAgZWxzZUJsb2NrID0gX2Vsc2VCbG9jaztcbiAgfVxuXG4gIHJldHVybiB7XG4gICAgdHlwZTogJ0Jsb2NrU3RhdGVtZW50JyxcbiAgICBwYXRoOiBidWlsZFBhdGgocGF0aCksXG4gICAgcGFyYW1zOiBwYXJhbXMgfHwgW10sXG4gICAgaGFzaDogaGFzaCB8fCBidWlsZEhhc2goW10pLFxuICAgIHByb2dyYW06IGRlZmF1bHRCbG9jayB8fCBudWxsLFxuICAgIGludmVyc2U6IGVsc2VCbG9jayB8fCBudWxsLFxuICAgIGxvYzogYnVpbGRMb2MobG9jIHx8IG51bGwpLFxuICAgIG9wZW5TdHJpcDogb3BlblN0cmlwIHx8IHsgb3BlbjogZmFsc2UsIGNsb3NlOiBmYWxzZSB9LFxuICAgIGludmVyc2VTdHJpcDogaW52ZXJzZVN0cmlwIHx8IHsgb3BlbjogZmFsc2UsIGNsb3NlOiBmYWxzZSB9LFxuICAgIGNsb3NlU3RyaXA6IGNsb3NlU3RyaXAgfHwgeyBvcGVuOiBmYWxzZSwgY2xvc2U6IGZhbHNlIH0sXG4gIH07XG59XG5cbmZ1bmN0aW9uIGJ1aWxkRWxlbWVudE1vZGlmaWVyKFxuICBwYXRoOiBCdWlsZGVySGVhZCB8IEFTVHYxLkV4cHJlc3Npb24sXG4gIHBhcmFtcz86IEFTVHYxLkV4cHJlc3Npb25bXSxcbiAgaGFzaD86IEFTVHYxLkhhc2gsXG4gIGxvYz86IE9wdGlvbjxTb3VyY2VMb2NhdGlvbj5cbik6IEFTVHYxLkVsZW1lbnRNb2RpZmllclN0YXRlbWVudCB7XG4gIHJldHVybiB7XG4gICAgdHlwZTogJ0VsZW1lbnRNb2RpZmllclN0YXRlbWVudCcsXG4gICAgcGF0aDogYnVpbGRQYXRoKHBhdGgpLFxuICAgIHBhcmFtczogcGFyYW1zIHx8IFtdLFxuICAgIGhhc2g6IGhhc2ggfHwgYnVpbGRIYXNoKFtdKSxcbiAgICBsb2M6IGJ1aWxkTG9jKGxvYyB8fCBudWxsKSxcbiAgfTtcbn1cblxuZnVuY3Rpb24gYnVpbGRQYXJ0aWFsKFxuICBuYW1lOiBBU1R2MS5QYXRoRXhwcmVzc2lvbixcbiAgcGFyYW1zPzogQVNUdjEuRXhwcmVzc2lvbltdLFxuICBoYXNoPzogQVNUdjEuSGFzaCxcbiAgaW5kZW50Pzogc3RyaW5nLFxuICBsb2M/OiBTb3VyY2VMb2NhdGlvblxuKTogQVNUdjEuUGFydGlhbFN0YXRlbWVudCB7XG4gIHJldHVybiB7XG4gICAgdHlwZTogJ1BhcnRpYWxTdGF0ZW1lbnQnLFxuICAgIG5hbWU6IG5hbWUsXG4gICAgcGFyYW1zOiBwYXJhbXMgfHwgW10sXG4gICAgaGFzaDogaGFzaCB8fCBidWlsZEhhc2goW10pLFxuICAgIGluZGVudDogaW5kZW50IHx8ICcnLFxuICAgIHN0cmlwOiB7IG9wZW46IGZhbHNlLCBjbG9zZTogZmFsc2UgfSxcbiAgICBsb2M6IGJ1aWxkTG9jKGxvYyB8fCBudWxsKSxcbiAgfTtcbn1cblxuZnVuY3Rpb24gYnVpbGRDb21tZW50KHZhbHVlOiBzdHJpbmcsIGxvYz86IFNvdXJjZUxvY2F0aW9uKTogQVNUdjEuQ29tbWVudFN0YXRlbWVudCB7XG4gIHJldHVybiB7XG4gICAgdHlwZTogJ0NvbW1lbnRTdGF0ZW1lbnQnLFxuICAgIHZhbHVlOiB2YWx1ZSxcbiAgICBsb2M6IGJ1aWxkTG9jKGxvYyB8fCBudWxsKSxcbiAgfTtcbn1cblxuZnVuY3Rpb24gYnVpbGRNdXN0YWNoZUNvbW1lbnQodmFsdWU6IHN0cmluZywgbG9jPzogU291cmNlTG9jYXRpb24pOiBBU1R2MS5NdXN0YWNoZUNvbW1lbnRTdGF0ZW1lbnQge1xuICByZXR1cm4ge1xuICAgIHR5cGU6ICdNdXN0YWNoZUNvbW1lbnRTdGF0ZW1lbnQnLFxuICAgIHZhbHVlOiB2YWx1ZSxcbiAgICBsb2M6IGJ1aWxkTG9jKGxvYyB8fCBudWxsKSxcbiAgfTtcbn1cblxuZnVuY3Rpb24gYnVpbGRDb25jYXQoXG4gIHBhcnRzOiAoQVNUdjEuVGV4dE5vZGUgfCBBU1R2MS5NdXN0YWNoZVN0YXRlbWVudClbXSxcbiAgbG9jPzogU291cmNlTG9jYXRpb25cbik6IEFTVHYxLkNvbmNhdFN0YXRlbWVudCB7XG4gIGlmICghaXNQcmVzZW50KHBhcnRzKSkge1xuICAgIHRocm93IG5ldyBFcnJvcihgYi5jb25jYXQgcmVxdWlyZXMgYXQgbGVhc3Qgb25lIHBhcnRgKTtcbiAgfVxuXG4gIHJldHVybiB7XG4gICAgdHlwZTogJ0NvbmNhdFN0YXRlbWVudCcsXG4gICAgcGFydHM6IHBhcnRzIHx8IFtdLFxuICAgIGxvYzogYnVpbGRMb2MobG9jIHx8IG51bGwpLFxuICB9O1xufVxuXG4vLyBOb2Rlc1xuXG5leHBvcnQgdHlwZSBFbGVtZW50UGFydHMgPVxuICB8IFsnYXR0cnMnLCAuLi5BdHRyU2V4cFtdXVxuICB8IFsnbW9kaWZpZXJzJywgLi4uTW9kaWZpZXJTZXhwW11dXG4gIHwgWydib2R5JywgLi4uQVNUdjEuU3RhdGVtZW50W11dXG4gIHwgWydjb21tZW50cycsIC4uLkVsZW1lbnRDb21tZW50W11dXG4gIHwgWydhcycsIC4uLnN0cmluZ1tdXVxuICB8IFsnbG9jJywgU291cmNlTG9jYXRpb25dO1xuXG5leHBvcnQgdHlwZSBQYXRoU2V4cCA9IHN0cmluZyB8IFsncGF0aCcsIHN0cmluZywgTG9jU2V4cD9dO1xuXG5leHBvcnQgdHlwZSBNb2RpZmllclNleHAgPVxuICB8IHN0cmluZ1xuICB8IFtQYXRoU2V4cCwgTG9jU2V4cD9dXG4gIHwgW1BhdGhTZXhwLCBBU1R2MS5FeHByZXNzaW9uW10sIExvY1NleHA/XVxuICB8IFtQYXRoU2V4cCwgQVNUdjEuRXhwcmVzc2lvbltdLCBEaWN0PEFTVHYxLkV4cHJlc3Npb24+LCBMb2NTZXhwP107XG5cbmV4cG9ydCB0eXBlIEF0dHJTZXhwID0gW3N0cmluZywgQVNUdjEuQXR0ck5vZGVbJ3ZhbHVlJ10gfCBzdHJpbmcsIExvY1NleHA/XTtcblxuZXhwb3J0IHR5cGUgTG9jU2V4cCA9IFsnbG9jJywgU291cmNlTG9jYXRpb25dO1xuXG5leHBvcnQgdHlwZSBFbGVtZW50Q29tbWVudCA9IEFTVHYxLk11c3RhY2hlQ29tbWVudFN0YXRlbWVudCB8IFNvdXJjZUxvY2F0aW9uIHwgc3RyaW5nO1xuXG5leHBvcnQgdHlwZSBTZXhwVmFsdWUgPVxuICB8IHN0cmluZ1xuICB8IEFTVHYxLkV4cHJlc3Npb25bXVxuICB8IERpY3Q8QVNUdjEuRXhwcmVzc2lvbj5cbiAgfCBMb2NTZXhwXG4gIHwgUGF0aFNleHBcbiAgfCB1bmRlZmluZWQ7XG5cbmV4cG9ydCBpbnRlcmZhY2UgQnVpbGRFbGVtZW50T3B0aW9ucyB7XG4gIGF0dHJzPzogQVNUdjEuQXR0ck5vZGVbXTtcbiAgbW9kaWZpZXJzPzogQVNUdjEuRWxlbWVudE1vZGlmaWVyU3RhdGVtZW50W107XG4gIGNoaWxkcmVuPzogQVNUdjEuU3RhdGVtZW50W107XG4gIGNvbW1lbnRzPzogRWxlbWVudENvbW1lbnRbXTtcbiAgYmxvY2tQYXJhbXM/OiBzdHJpbmdbXTtcbiAgbG9jPzogU291cmNlU3Bhbjtcbn1cblxuZnVuY3Rpb24gYnVpbGRFbGVtZW50KHRhZzogVGFnRGVzY3JpcHRvciwgb3B0aW9uczogQnVpbGRFbGVtZW50T3B0aW9ucyk6IEFTVHYxLkVsZW1lbnROb2RlIHtcbiAgbGV0IHsgYXR0cnMsIGJsb2NrUGFyYW1zLCBtb2RpZmllcnMsIGNvbW1lbnRzLCBjaGlsZHJlbiwgbG9jIH0gPSBvcHRpb25zO1xuXG4gIGxldCB0YWdOYW1lOiBzdHJpbmc7XG5cbiAgLy8gdGhpcyBpcyB1c2VkIGZvciBiYWNrd2FyZHMgY29tcGF0LCBwcmlvciB0byBgc2VsZkNsb3NpbmdgIGJlaW5nIHBhcnQgb2YgdGhlIEVsZW1lbnROb2RlIEFTVFxuICBsZXQgc2VsZkNsb3NpbmcgPSBmYWxzZTtcbiAgaWYgKHR5cGVvZiB0YWcgPT09ICdvYmplY3QnKSB7XG4gICAgc2VsZkNsb3NpbmcgPSB0YWcuc2VsZkNsb3Npbmc7XG4gICAgdGFnTmFtZSA9IHRhZy5uYW1lO1xuICB9IGVsc2UgaWYgKHRhZy5zbGljZSgtMSkgPT09ICcvJykge1xuICAgIHRhZ05hbWUgPSB0YWcuc2xpY2UoMCwgLTEpO1xuICAgIHNlbGZDbG9zaW5nID0gdHJ1ZTtcbiAgfSBlbHNlIHtcbiAgICB0YWdOYW1lID0gdGFnO1xuICB9XG5cbiAgcmV0dXJuIHtcbiAgICB0eXBlOiAnRWxlbWVudE5vZGUnLFxuICAgIHRhZzogdGFnTmFtZSxcbiAgICBzZWxmQ2xvc2luZzogc2VsZkNsb3NpbmcsXG4gICAgYXR0cmlidXRlczogYXR0cnMgfHwgW10sXG4gICAgYmxvY2tQYXJhbXM6IGJsb2NrUGFyYW1zIHx8IFtdLFxuICAgIG1vZGlmaWVyczogbW9kaWZpZXJzIHx8IFtdLFxuICAgIGNvbW1lbnRzOiAoY29tbWVudHMgYXMgQVNUdjEuTXVzdGFjaGVDb21tZW50U3RhdGVtZW50W10pIHx8IFtdLFxuICAgIGNoaWxkcmVuOiBjaGlsZHJlbiB8fCBbXSxcbiAgICBsb2M6IGJ1aWxkTG9jKGxvYyB8fCBudWxsKSxcbiAgfTtcbn1cblxuZnVuY3Rpb24gYnVpbGRBdHRyKFxuICBuYW1lOiBzdHJpbmcsXG4gIHZhbHVlOiBBU1R2MS5BdHRyTm9kZVsndmFsdWUnXSxcbiAgbG9jPzogU291cmNlTG9jYXRpb25cbik6IEFTVHYxLkF0dHJOb2RlIHtcbiAgcmV0dXJuIHtcbiAgICB0eXBlOiAnQXR0ck5vZGUnLFxuICAgIG5hbWU6IG5hbWUsXG4gICAgdmFsdWU6IHZhbHVlLFxuICAgIGxvYzogYnVpbGRMb2MobG9jIHx8IG51bGwpLFxuICB9O1xufVxuXG5mdW5jdGlvbiBidWlsZFRleHQoY2hhcnM/OiBzdHJpbmcsIGxvYz86IFNvdXJjZUxvY2F0aW9uKTogQVNUdjEuVGV4dE5vZGUge1xuICByZXR1cm4ge1xuICAgIHR5cGU6ICdUZXh0Tm9kZScsXG4gICAgY2hhcnM6IGNoYXJzIHx8ICcnLFxuICAgIGxvYzogYnVpbGRMb2MobG9jIHx8IG51bGwpLFxuICB9O1xufVxuXG4vLyBFeHByZXNzaW9uc1xuXG5mdW5jdGlvbiBidWlsZFNleHByKFxuICBwYXRoOiBCdWlsZGVySGVhZCxcbiAgcGFyYW1zPzogQVNUdjEuRXhwcmVzc2lvbltdLFxuICBoYXNoPzogQVNUdjEuSGFzaCxcbiAgbG9jPzogU291cmNlTG9jYXRpb25cbik6IEFTVHYxLlN1YkV4cHJlc3Npb24ge1xuICByZXR1cm4ge1xuICAgIHR5cGU6ICdTdWJFeHByZXNzaW9uJyxcbiAgICBwYXRoOiBidWlsZFBhdGgocGF0aCksXG4gICAgcGFyYW1zOiBwYXJhbXMgfHwgW10sXG4gICAgaGFzaDogaGFzaCB8fCBidWlsZEhhc2goW10pLFxuICAgIGxvYzogYnVpbGRMb2MobG9jIHx8IG51bGwpLFxuICB9O1xufVxuXG5mdW5jdGlvbiBoZWFkVG9TdHJpbmcoaGVhZDogQVNUdjEuUGF0aEhlYWQpOiB7IG9yaWdpbmFsOiBzdHJpbmc7IHBhcnRzOiBzdHJpbmdbXSB9IHtcbiAgc3dpdGNoIChoZWFkLnR5cGUpIHtcbiAgICBjYXNlICdBdEhlYWQnOlxuICAgICAgcmV0dXJuIHsgb3JpZ2luYWw6IGhlYWQubmFtZSwgcGFydHM6IFtoZWFkLm5hbWVdIH07XG4gICAgY2FzZSAnVGhpc0hlYWQnOlxuICAgICAgcmV0dXJuIHsgb3JpZ2luYWw6IGB0aGlzYCwgcGFydHM6IFtdIH07XG4gICAgY2FzZSAnVmFySGVhZCc6XG4gICAgICByZXR1cm4geyBvcmlnaW5hbDogaGVhZC5uYW1lLCBwYXJ0czogW2hlYWQubmFtZV0gfTtcbiAgfVxufVxuXG5mdW5jdGlvbiBidWlsZEhlYWQoXG4gIG9yaWdpbmFsOiBzdHJpbmcsXG4gIGxvYzogU291cmNlTG9jYXRpb25cbik6IHsgaGVhZDogQVNUdjEuUGF0aEhlYWQ7IHRhaWw6IHN0cmluZ1tdIH0ge1xuICBsZXQgW2hlYWQsIC4uLnRhaWxdID0gb3JpZ2luYWwuc3BsaXQoJy4nKTtcbiAgbGV0IGhlYWROb2RlOiBBU1R2MS5QYXRoSGVhZDtcblxuICBpZiAoaGVhZCA9PT0gJ3RoaXMnKSB7XG4gICAgaGVhZE5vZGUgPSB7XG4gICAgICB0eXBlOiAnVGhpc0hlYWQnLFxuICAgICAgbG9jOiBidWlsZExvYyhsb2MgfHwgbnVsbCksXG4gICAgfTtcbiAgfSBlbHNlIGlmIChoZWFkWzBdID09PSAnQCcpIHtcbiAgICBoZWFkTm9kZSA9IHtcbiAgICAgIHR5cGU6ICdBdEhlYWQnLFxuICAgICAgbmFtZTogaGVhZCxcbiAgICAgIGxvYzogYnVpbGRMb2MobG9jIHx8IG51bGwpLFxuICAgIH07XG4gIH0gZWxzZSB7XG4gICAgaGVhZE5vZGUgPSB7XG4gICAgICB0eXBlOiAnVmFySGVhZCcsXG4gICAgICBuYW1lOiBoZWFkLFxuICAgICAgbG9jOiBidWlsZExvYyhsb2MgfHwgbnVsbCksXG4gICAgfTtcbiAgfVxuXG4gIHJldHVybiB7XG4gICAgaGVhZDogaGVhZE5vZGUsXG4gICAgdGFpbCxcbiAgfTtcbn1cblxuZnVuY3Rpb24gYnVpbGRUaGlzKGxvYzogU291cmNlTG9jYXRpb24pOiBBU1R2MS5QYXRoSGVhZCB7XG4gIHJldHVybiB7XG4gICAgdHlwZTogJ1RoaXNIZWFkJyxcbiAgICBsb2M6IGJ1aWxkTG9jKGxvYyB8fCBudWxsKSxcbiAgfTtcbn1cblxuZnVuY3Rpb24gYnVpbGRBdE5hbWUobmFtZTogc3RyaW5nLCBsb2M6IFNvdXJjZUxvY2F0aW9uKTogQVNUdjEuUGF0aEhlYWQge1xuICAvLyB0aGUgYEBgIHNob3VsZCBiZSBpbmNsdWRlZCBzbyB3ZSBoYXZlIGEgY29tcGxldGUgc291cmNlIHJhbmdlXG4gIGFzc2VydChuYW1lWzBdID09PSAnQCcsIGBjYWxsIGJ1aWxkZXJzLmF0KCkgd2l0aCBhIHN0cmluZyB0aGF0IHN0YXJ0cyB3aXRoICdAJ2ApO1xuXG4gIHJldHVybiB7XG4gICAgdHlwZTogJ0F0SGVhZCcsXG4gICAgbmFtZSxcbiAgICBsb2M6IGJ1aWxkTG9jKGxvYyB8fCBudWxsKSxcbiAgfTtcbn1cblxuZnVuY3Rpb24gYnVpbGRWYXIobmFtZTogc3RyaW5nLCBsb2M6IFNvdXJjZUxvY2F0aW9uKTogQVNUdjEuUGF0aEhlYWQge1xuICBhc3NlcnQobmFtZSAhPT0gJ3RoaXMnLCBgWW91IGNhbGxlZCBidWlsZGVycy52YXIoKSB3aXRoICd0aGlzJy4gQ2FsbCBidWlsZGVycy50aGlzIGluc3RlYWRgKTtcbiAgYXNzZXJ0KFxuICAgIG5hbWVbMF0gIT09ICdAJyxcbiAgICBgWW91IGNhbGxlZCBidWlsZGVycy52YXIoKSB3aXRoICcke25hbWV9Jy4gQ2FsbCBidWlsZGVycy5hdCgnJHtuYW1lfScpIGluc3RlYWRgXG4gICk7XG5cbiAgcmV0dXJuIHtcbiAgICB0eXBlOiAnVmFySGVhZCcsXG4gICAgbmFtZSxcbiAgICBsb2M6IGJ1aWxkTG9jKGxvYyB8fCBudWxsKSxcbiAgfTtcbn1cblxuZnVuY3Rpb24gYnVpbGRIZWFkRnJvbVN0cmluZyhoZWFkOiBzdHJpbmcsIGxvYzogU291cmNlTG9jYXRpb24pOiBBU1R2MS5QYXRoSGVhZCB7XG4gIGlmIChoZWFkWzBdID09PSAnQCcpIHtcbiAgICByZXR1cm4gYnVpbGRBdE5hbWUoaGVhZCwgbG9jKTtcbiAgfSBlbHNlIGlmIChoZWFkID09PSAndGhpcycpIHtcbiAgICByZXR1cm4gYnVpbGRUaGlzKGxvYyk7XG4gIH0gZWxzZSB7XG4gICAgcmV0dXJuIGJ1aWxkVmFyKGhlYWQsIGxvYyk7XG4gIH1cbn1cblxuZnVuY3Rpb24gYnVpbGROYW1lZEJsb2NrTmFtZShuYW1lOiBzdHJpbmcsIGxvYz86IFNvdXJjZUxvY2F0aW9uKTogQVNUdjEuTmFtZWRCbG9ja05hbWUge1xuICByZXR1cm4ge1xuICAgIHR5cGU6ICdOYW1lZEJsb2NrTmFtZScsXG4gICAgbmFtZSxcbiAgICBsb2M6IGJ1aWxkTG9jKGxvYyB8fCBudWxsKSxcbiAgfTtcbn1cblxuZnVuY3Rpb24gYnVpbGRDbGVhblBhdGgoXG4gIGhlYWQ6IEFTVHYxLlBhdGhIZWFkLFxuICB0YWlsOiBzdHJpbmdbXSxcbiAgbG9jOiBTb3VyY2VMb2NhdGlvblxuKTogQVNUdjEuUGF0aEV4cHJlc3Npb24ge1xuICBsZXQgeyBvcmlnaW5hbDogb3JpZ2luYWxIZWFkLCBwYXJ0czogaGVhZFBhcnRzIH0gPSBoZWFkVG9TdHJpbmcoaGVhZCk7XG4gIGxldCBwYXJ0cyA9IFsuLi5oZWFkUGFydHMsIC4uLnRhaWxdO1xuICBsZXQgb3JpZ2luYWwgPSBbLi4ub3JpZ2luYWxIZWFkLCAuLi5wYXJ0c10uam9pbignLicpO1xuXG4gIHJldHVybiBuZXcgUGF0aEV4cHJlc3Npb25JbXBsVjEob3JpZ2luYWwsIGhlYWQsIHRhaWwsIGJ1aWxkTG9jKGxvYyB8fCBudWxsKSk7XG59XG5cbmZ1bmN0aW9uIGJ1aWxkUGF0aChcbiAgcGF0aDogQVNUdjEuUGF0aEV4cHJlc3Npb24gfCBzdHJpbmcgfCB7IGhlYWQ6IHN0cmluZzsgdGFpbDogc3RyaW5nW10gfSxcbiAgbG9jPzogU291cmNlTG9jYXRpb25cbik6IEFTVHYxLlBhdGhFeHByZXNzaW9uO1xuZnVuY3Rpb24gYnVpbGRQYXRoKHBhdGg6IEFTVHYxLkV4cHJlc3Npb24sIGxvYz86IFNvdXJjZUxvY2F0aW9uKTogQVNUdjEuRXhwcmVzc2lvbjtcbmZ1bmN0aW9uIGJ1aWxkUGF0aChwYXRoOiBCdWlsZGVySGVhZCB8IEFTVHYxLkV4cHJlc3Npb24sIGxvYz86IFNvdXJjZUxvY2F0aW9uKTogQVNUdjEuRXhwcmVzc2lvbjtcbmZ1bmN0aW9uIGJ1aWxkUGF0aChcbiAgcGF0aDogQnVpbGRlckhlYWQgfCBBU1R2MS5FeHByZXNzaW9uIHwgeyBoZWFkOiBzdHJpbmc7IHRhaWw6IHN0cmluZ1tdIH0sXG4gIGxvYz86IFNvdXJjZUxvY2F0aW9uXG4pOiBBU1R2MS5FeHByZXNzaW9uIHtcbiAgaWYgKHR5cGVvZiBwYXRoICE9PSAnc3RyaW5nJykge1xuICAgIGlmICgndHlwZScgaW4gcGF0aCkge1xuICAgICAgcmV0dXJuIHBhdGg7XG4gICAgfSBlbHNlIHtcbiAgICAgIGxldCB7IGhlYWQsIHRhaWwgfSA9IGJ1aWxkSGVhZChwYXRoLmhlYWQsIFNvdXJjZVNwYW4uYnJva2VuKCkpO1xuXG4gICAgICBhc3NlcnQoXG4gICAgICAgIHRhaWwubGVuZ3RoID09PSAwLFxuICAgICAgICBgYnVpbGRlci5wYXRoKHsgaGVhZCwgdGFpbCB9KSBzaG91bGQgbm90IGJlIGNhbGxlZCB3aXRoIGEgaGVhZCB3aXRoIGRvdHMgaW4gaXRgXG4gICAgICApO1xuXG4gICAgICBsZXQgeyBvcmlnaW5hbDogb3JpZ2luYWxIZWFkIH0gPSBoZWFkVG9TdHJpbmcoaGVhZCk7XG5cbiAgICAgIHJldHVybiBuZXcgUGF0aEV4cHJlc3Npb25JbXBsVjEoXG4gICAgICAgIFtvcmlnaW5hbEhlYWQsIC4uLnRhaWxdLmpvaW4oJy4nKSxcbiAgICAgICAgaGVhZCxcbiAgICAgICAgdGFpbCxcbiAgICAgICAgYnVpbGRMb2MobG9jIHx8IG51bGwpXG4gICAgICApO1xuICAgIH1cbiAgfVxuXG4gIGxldCB7IGhlYWQsIHRhaWwgfSA9IGJ1aWxkSGVhZChwYXRoLCBTb3VyY2VTcGFuLmJyb2tlbigpKTtcblxuICByZXR1cm4gbmV3IFBhdGhFeHByZXNzaW9uSW1wbFYxKHBhdGgsIGhlYWQsIHRhaWwsIGJ1aWxkTG9jKGxvYyB8fCBudWxsKSk7XG59XG5cbmZ1bmN0aW9uIGJ1aWxkTGl0ZXJhbDxUIGV4dGVuZHMgQVNUdjEuTGl0ZXJhbD4oXG4gIHR5cGU6IFRbJ3R5cGUnXSxcbiAgdmFsdWU6IFRbJ3ZhbHVlJ10sXG4gIGxvYz86IFNvdXJjZUxvY2F0aW9uXG4pOiBUIHtcbiAgcmV0dXJuIHtcbiAgICB0eXBlLFxuICAgIHZhbHVlLFxuICAgIG9yaWdpbmFsOiB2YWx1ZSxcbiAgICBsb2M6IGJ1aWxkTG9jKGxvYyB8fCBudWxsKSxcbiAgfSBhcyBUO1xufVxuXG4vLyBNaXNjZWxsYW5lb3VzXG5cbmZ1bmN0aW9uIGJ1aWxkSGFzaChwYWlycz86IEFTVHYxLkhhc2hQYWlyW10sIGxvYz86IFNvdXJjZUxvY2F0aW9uKTogQVNUdjEuSGFzaCB7XG4gIHJldHVybiB7XG4gICAgdHlwZTogJ0hhc2gnLFxuICAgIHBhaXJzOiBwYWlycyB8fCBbXSxcbiAgICBsb2M6IGJ1aWxkTG9jKGxvYyB8fCBudWxsKSxcbiAgfTtcbn1cblxuZnVuY3Rpb24gYnVpbGRQYWlyKGtleTogc3RyaW5nLCB2YWx1ZTogQVNUdjEuRXhwcmVzc2lvbiwgbG9jPzogU291cmNlTG9jYXRpb24pOiBBU1R2MS5IYXNoUGFpciB7XG4gIHJldHVybiB7XG4gICAgdHlwZTogJ0hhc2hQYWlyJyxcbiAgICBrZXk6IGtleSxcbiAgICB2YWx1ZSxcbiAgICBsb2M6IGJ1aWxkTG9jKGxvYyB8fCBudWxsKSxcbiAgfTtcbn1cblxuZnVuY3Rpb24gYnVpbGRQcm9ncmFtKFxuICBib2R5PzogQVNUdjEuU3RhdGVtZW50W10sXG4gIGJsb2NrUGFyYW1zPzogc3RyaW5nW10sXG4gIGxvYz86IFNvdXJjZUxvY2F0aW9uXG4pOiBBU1R2MS5UZW1wbGF0ZSB7XG4gIHJldHVybiB7XG4gICAgdHlwZTogJ1RlbXBsYXRlJyxcbiAgICBib2R5OiBib2R5IHx8IFtdLFxuICAgIGJsb2NrUGFyYW1zOiBibG9ja1BhcmFtcyB8fCBbXSxcbiAgICBsb2M6IGJ1aWxkTG9jKGxvYyB8fCBudWxsKSxcbiAgfTtcbn1cblxuZnVuY3Rpb24gYnVpbGRCbG9ja0l0c2VsZihcbiAgYm9keT86IEFTVHYxLlN0YXRlbWVudFtdLFxuICBibG9ja1BhcmFtcz86IHN0cmluZ1tdLFxuICBjaGFpbmVkID0gZmFsc2UsXG4gIGxvYz86IFNvdXJjZUxvY2F0aW9uXG4pOiBBU1R2MS5CbG9jayB7XG4gIHJldHVybiB7XG4gICAgdHlwZTogJ0Jsb2NrJyxcbiAgICBib2R5OiBib2R5IHx8IFtdLFxuICAgIGJsb2NrUGFyYW1zOiBibG9ja1BhcmFtcyB8fCBbXSxcbiAgICBjaGFpbmVkLFxuICAgIGxvYzogYnVpbGRMb2MobG9jIHx8IG51bGwpLFxuICB9O1xufVxuXG5mdW5jdGlvbiBidWlsZFRlbXBsYXRlKFxuICBib2R5PzogQVNUdjEuU3RhdGVtZW50W10sXG4gIGJsb2NrUGFyYW1zPzogc3RyaW5nW10sXG4gIGxvYz86IFNvdXJjZUxvY2F0aW9uXG4pOiBBU1R2MS5UZW1wbGF0ZSB7XG4gIHJldHVybiB7XG4gICAgdHlwZTogJ1RlbXBsYXRlJyxcbiAgICBib2R5OiBib2R5IHx8IFtdLFxuICAgIGJsb2NrUGFyYW1zOiBibG9ja1BhcmFtcyB8fCBbXSxcbiAgICBsb2M6IGJ1aWxkTG9jKGxvYyB8fCBudWxsKSxcbiAgfTtcbn1cblxuZnVuY3Rpb24gYnVpbGRQb3NpdGlvbihsaW5lOiBudW1iZXIsIGNvbHVtbjogbnVtYmVyKTogU291cmNlUG9zaXRpb24ge1xuICByZXR1cm4ge1xuICAgIGxpbmUsXG4gICAgY29sdW1uLFxuICB9O1xufVxuXG5mdW5jdGlvbiBidWlsZExvYyhsb2M6IE9wdGlvbjxTb3VyY2VMb2NhdGlvbj4pOiBTb3VyY2VTcGFuO1xuZnVuY3Rpb24gYnVpbGRMb2MoXG4gIHN0YXJ0TGluZTogbnVtYmVyLFxuICBzdGFydENvbHVtbjogbnVtYmVyLFxuICBlbmRMaW5lPzogbnVtYmVyLFxuICBlbmRDb2x1bW4/OiBudW1iZXIsXG4gIHNvdXJjZT86IHN0cmluZ1xuKTogU291cmNlU3BhbjtcblxuZnVuY3Rpb24gYnVpbGRMb2MoLi4uYXJnczogYW55W10pOiBTb3VyY2VTcGFuIHtcbiAgaWYgKGFyZ3MubGVuZ3RoID09PSAxKSB7XG4gICAgbGV0IGxvYyA9IGFyZ3NbMF07XG5cbiAgICBpZiAobG9jICYmIHR5cGVvZiBsb2MgPT09ICdvYmplY3QnKSB7XG4gICAgICByZXR1cm4gU291cmNlU3Bhbi5mb3JIYnNMb2MoU09VUkNFKCksIGxvYyk7XG4gICAgfSBlbHNlIHtcbiAgICAgIHJldHVybiBTb3VyY2VTcGFuLmZvckhic0xvYyhTT1VSQ0UoKSwgU1lOVEhFVElDX0xPQ0FUSU9OKTtcbiAgICB9XG4gIH0gZWxzZSB7XG4gICAgbGV0IFtzdGFydExpbmUsIHN0YXJ0Q29sdW1uLCBlbmRMaW5lLCBlbmRDb2x1bW4sIF9zb3VyY2VdID0gYXJncztcbiAgICBsZXQgc291cmNlID0gX3NvdXJjZSA/IG5ldyBTb3VyY2UoJycsIF9zb3VyY2UpIDogU09VUkNFKCk7XG5cbiAgICByZXR1cm4gU291cmNlU3Bhbi5mb3JIYnNMb2Moc291cmNlLCB7XG4gICAgICBzdGFydDoge1xuICAgICAgICBsaW5lOiBzdGFydExpbmUsXG4gICAgICAgIGNvbHVtbjogc3RhcnRDb2x1bW4sXG4gICAgICB9LFxuICAgICAgZW5kOiB7XG4gICAgICAgIGxpbmU6IGVuZExpbmUsXG4gICAgICAgIGNvbHVtbjogZW5kQ29sdW1uLFxuICAgICAgfSxcbiAgICB9KTtcbiAgfVxufVxuXG5leHBvcnQgZGVmYXVsdCB7XG4gIG11c3RhY2hlOiBidWlsZE11c3RhY2hlLFxuICBibG9jazogYnVpbGRCbG9jayxcbiAgcGFydGlhbDogYnVpbGRQYXJ0aWFsLFxuICBjb21tZW50OiBidWlsZENvbW1lbnQsXG4gIG11c3RhY2hlQ29tbWVudDogYnVpbGRNdXN0YWNoZUNvbW1lbnQsXG4gIGVsZW1lbnQ6IGJ1aWxkRWxlbWVudCxcbiAgZWxlbWVudE1vZGlmaWVyOiBidWlsZEVsZW1lbnRNb2RpZmllcixcbiAgYXR0cjogYnVpbGRBdHRyLFxuICB0ZXh0OiBidWlsZFRleHQsXG4gIHNleHByOiBidWlsZFNleHByLFxuXG4gIGNvbmNhdDogYnVpbGRDb25jYXQsXG4gIGhhc2g6IGJ1aWxkSGFzaCxcbiAgcGFpcjogYnVpbGRQYWlyLFxuICBsaXRlcmFsOiBidWlsZExpdGVyYWwsXG4gIHByb2dyYW06IGJ1aWxkUHJvZ3JhbSxcbiAgYmxvY2tJdHNlbGY6IGJ1aWxkQmxvY2tJdHNlbGYsXG4gIHRlbXBsYXRlOiBidWlsZFRlbXBsYXRlLFxuICBsb2M6IGJ1aWxkTG9jLFxuICBwb3M6IGJ1aWxkUG9zaXRpb24sXG5cbiAgcGF0aDogYnVpbGRQYXRoLFxuXG4gIGZ1bGxQYXRoOiBidWlsZENsZWFuUGF0aCxcbiAgaGVhZDogYnVpbGRIZWFkRnJvbVN0cmluZyxcbiAgYXQ6IGJ1aWxkQXROYW1lLFxuICB2YXI6IGJ1aWxkVmFyLFxuICB0aGlzOiBidWlsZFRoaXMsXG4gIGJsb2NrTmFtZTogYnVpbGROYW1lZEJsb2NrTmFtZSxcblxuICBzdHJpbmc6IGxpdGVyYWwoJ1N0cmluZ0xpdGVyYWwnKSBhcyAodmFsdWU6IHN0cmluZykgPT4gQVNUdjEuU3RyaW5nTGl0ZXJhbCxcbiAgYm9vbGVhbjogbGl0ZXJhbCgnQm9vbGVhbkxpdGVyYWwnKSBhcyAodmFsdWU6IGJvb2xlYW4pID0+IEFTVHYxLkJvb2xlYW5MaXRlcmFsLFxuICBudW1iZXI6IGxpdGVyYWwoJ051bWJlckxpdGVyYWwnKSBhcyAodmFsdWU6IG51bWJlcikgPT4gQVNUdjEuTnVtYmVyTGl0ZXJhbCxcbiAgdW5kZWZpbmVkKCk6IEFTVHYxLlVuZGVmaW5lZExpdGVyYWwge1xuICAgIHJldHVybiBidWlsZExpdGVyYWwoJ1VuZGVmaW5lZExpdGVyYWwnLCB1bmRlZmluZWQpO1xuICB9LFxuICBudWxsKCk6IEFTVHYxLk51bGxMaXRlcmFsIHtcbiAgICByZXR1cm4gYnVpbGRMaXRlcmFsKCdOdWxsTGl0ZXJhbCcsIG51bGwpO1xuICB9LFxufTtcblxudHlwZSBCdWlsZExpdGVyYWw8VCBleHRlbmRzIEFTVHYxLkxpdGVyYWw+ID0gKHZhbHVlOiBUWyd2YWx1ZSddKSA9PiBUO1xuXG5mdW5jdGlvbiBsaXRlcmFsPFQgZXh0ZW5kcyBBU1R2MS5MaXRlcmFsPih0eXBlOiBUWyd0eXBlJ10pOiBCdWlsZExpdGVyYWw8VD4ge1xuICByZXR1cm4gZnVuY3Rpb24gKHZhbHVlOiBUWyd2YWx1ZSddLCBsb2M/OiBTb3VyY2VMb2NhdGlvbik6IFQge1xuICAgIHJldHVybiBidWlsZExpdGVyYWwodHlwZSwgdmFsdWUsIGxvYyk7XG4gIH07XG59XG4iXSwic291cmNlUm9vdCI6IiJ9
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3BhY2thZ2VzL0BnbGltbWVyL3N5bnRheC9saWIvdjEvcHVibGljLWJ1aWxkZXJzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUVBLFNBQUEsTUFBQSxFQUFBLE1BQUEsRUFBQSxTQUFBLEVBQUEsU0FBQSxRQUFBLGVBQUE7QUFFQSxTQUFBLGtCQUFBLFFBQUEsb0JBQUE7QUFDQSxTQUFBLE1BQUEsUUFBQSxrQkFBQTtBQUNBLFNBQUEsVUFBQSxRQUFBLGdCQUFBO0FBRUEsU0FBQSxvQkFBQSxRQUFBLGtCQUFBOztBQUVBLElBQUEsT0FBQTs7QUFFQSxTQUFBLE1BQUEsR0FBZTtBQUNiLE1BQUksQ0FBSixPQUFBLEVBQWM7QUFDWixJQUFBLE9BQU8sR0FBRyxJQUFBLE1BQUEsQ0FBQSxFQUFBLEVBQVYsYUFBVSxDQUFWO0FBQ0Q7O0FBRUQsU0FBQSxPQUFBO0FBQ0Q7O0FBU0QsU0FBQSxhQUFBLENBQUEsSUFBQSxFQUFBLE1BQUEsRUFBQSxJQUFBLEVBQUEsR0FBQSxFQUFBLEdBQUEsRUFBQSxLQUFBLEVBTTBCO0FBRXhCLE1BQUksT0FBQSxJQUFBLEtBQUosUUFBQSxFQUE4QjtBQUM1QixJQUFBLElBQUksR0FBRyxTQUFTLENBQWhCLElBQWdCLENBQWhCO0FBQ0Q7O0FBRUQsU0FBTztBQUNMLElBQUEsSUFBSSxFQURDLG1CQUFBO0FBRUwsSUFBQSxJQUZLLEVBRUwsSUFGSztBQUdMLElBQUEsTUFBTSxFQUFFLE1BQU0sSUFIVCxFQUFBO0FBSUwsSUFBQSxJQUFJLEVBQUUsSUFBSSxJQUFJLFNBQVMsQ0FKbEIsRUFJa0IsQ0FKbEI7QUFLTCxJQUFBLE9BQU8sRUFBRSxDQUxKLEdBQUE7QUFNTCxJQUFBLFFBQVEsRUFBRSxDQUFDLENBTk4sR0FBQTtBQU9MLElBQUEsR0FBRyxFQUFFLFFBQVEsQ0FBQyxHQUFHLElBUFosSUFPUSxDQVBSO0FBUUwsSUFBQSxLQUFLLEVBQUUsS0FBSyxJQUFJO0FBQUUsTUFBQSxJQUFJLEVB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QUFBO0FBY2IsRUFBQSxJQUFJLEVBZFMsU0FBQTtBQWViLEVBQUEsT0FBTyxFQWZNLFlBQUE7QUFnQmIsRUFBQSxPQUFPLEVBaEJNLFlBQUE7QUFpQmIsRUFBQSxXQUFXLEVBakJFLGdCQUFBO0FBa0JiLEVBQUEsUUFBUSxFQWxCSyxhQUFBO0FBbUJiLEVBQUEsR0FBRyxFQW5CVSxRQUFBO0FBb0JiLEVBQUEsR0FBRyxFQXBCVSxhQUFBO0FBc0JiLEVBQUEsSUFBSSxFQXRCUyxTQUFBO0FBd0JiLEVBQUEsUUFBUSxFQXhCSyxjQUFBO0FBeUJiLEVBQUEsSUFBSSxFQXpCUyxtQkFBQTtBQTBCYixFQUFBLEVBQUUsRUExQlcsV0FBQTtBQTJCYixTQTNCYSxRQUFBO0FBNEJiLFVBNUJhLFNBQUE7QUE2QmIsRUFBQSxTQUFTLEVBN0JJLG1CQUFBO0FBK0JiLEVBQUEsTUFBTSxFQUFFLE9BQU8sQ0EvQkYsZUErQkUsQ0EvQkY7QUFnQ2IsYUFBUyxPQUFPLENBaENILGdCQWdDRyxDQWhDSDtBQWlDYixFQUFBLE1BQU0sRUFBRSxPQUFPLENBakNGLGVBaUNFLENBakNGO0FBa0NiLEVBQUEsU0FsQ2E7QUFBQTtBQUFBO0FBQUE7O0FBQUE7QUFBQTtBQUFBOztBQUFBO0FBQUEsZ0JBa0NKO0FBQ1AsV0FBTyxZQUFZLENBQUEsa0JBQUEsRUFBbkIsU0FBbUIsQ0FBbkI7QUFuQ1csR0FBQTtBQUFBLDJCQXFDVDtBQUNGLFdBQU8sWUFBWSxDQUFBLGFBQUEsRUFBbkIsSUFBbUIsQ0FBbkI7QUFDRDtBQXZDWSxDQUFmOztBQTRDQSxTQUFBLE9BQUEsQ0FBQSxJQUFBLEVBQXlEO0FBQ3ZELFNBQU8sVUFBQSxLQUFBLEVBQUEsR0FBQSxFQUFpRDtBQUN0RCxXQUFPLFlBQVksQ0FBQSxJQUFBLEVBQUEsS0FBQSxFQUFuQixHQUFtQixDQUFuQjtBQURGLEdBQUE7QUFHRCIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IERpY3QsIE9wdGlvbiB9IGZyb20gJ0BnbGltbWVyL2ludGVyZmFjZXMnO1xuaW1wb3J0IHsgTE9DQUxfREVCVUcgfSBmcm9tICdAZ2xpbW1lci9sb2NhbC1kZWJ1Zy1mbGFncyc7XG5pbXBvcnQgeyBhc3NlcnQsIGFzc2lnbiwgZGVwcmVjYXRlLCBpc1ByZXNlbnQgfSBmcm9tICdAZ2xpbW1lci91dGlsJztcblxuaW1wb3J0IHsgU291cmNlTG9jYXRpb24sIFNvdXJjZVBvc2l0aW9uLCBTWU5USEVUSUNfTE9DQVRJT04gfSBmcm9tICcuLi9zb3VyY2UvbG9jYXRpb24nO1xuaW1wb3J0IHsgU291cmNlIH0gZnJvbSAnLi4vc291cmNlL3NvdXJjZSc7XG5pbXBvcnQgeyBTb3VyY2VTcGFuIH0gZnJvbSAnLi4vc291cmNlL3NwYW4nO1xuaW1wb3J0ICogYXMgQVNUdjEgZnJvbSAnLi9hcGknO1xuaW1wb3J0IHsgUGF0aEV4cHJlc3Npb25JbXBsVjEgfSBmcm9tICcuL2xlZ2FjeS1pbnRlcm9wJztcblxubGV0IF9TT1VSQ0U6IFNvdXJjZSB8IHVuZGVmaW5lZDtcblxuZnVuY3Rpb24gU09VUkNFKCk6IFNvdXJjZSB7XG4gIGlmICghX1NPVVJDRSkge1xuICAgIF9TT1VSQ0UgPSBuZXcgU291cmNlKCcnLCAnKHN5bnRoZXRpYyknKTtcbiAgfVxuXG4gIHJldHVybiBfU09VUkNFO1xufVxuXG4vLyBjb25zdCBTT1VSQ0UgPSBuZXcgU291cmNlKCcnLCAnKHRlc3RzKScpO1xuXG4vLyBTdGF0ZW1lbnRzXG5cbmV4cG9ydCB0eXBlIEJ1aWxkZXJIZWFkID0gc3RyaW5nIHwgQVNUdjEuRXhwcmVzc2lvbjtcbmV4cG9ydCB0eXBlIFRhZ0Rlc2NyaXB0b3IgPSBzdHJpbmcgfCB7IG5hbWU6IHN0cmluZzsgc2VsZkNsb3Npbmc6IGJvb2xlYW4gfTtcblxuZnVuY3Rpb24gYnVpbGRNdXN0YWNoZShcbiAgcGF0aDogQnVpbGRlckhlYWQgfCBBU1R2MS5MaXRlcmFsLFxuICBwYXJhbXM/OiBBU1R2MS5FeHByZXNzaW9uW10sXG4gIGhhc2g/OiBBU1R2MS5IYXNoLFxuICByYXc/OiBib29sZWFuLFxuICBsb2M/OiBTb3VyY2VMb2NhdGlvbixcbiAgc3RyaXA/OiBBU1R2MS5TdHJpcEZsYWdzXG4pOiBBU1R2MS5NdXN0YWNoZVN0YXRlbWVudCB7XG4gIGlmICh0eXBlb2YgcGF0aCA9PT0gJ3N0cmluZycpIHtcbiAgICBwYXRoID0gYnVpbGRQYXRoKHBhdGgpO1xuICB9XG5cbiAgcmV0dXJuIHtcbiAgICB0eXBlOiAnTXVzdGFjaGVTdGF0ZW1lbnQnLFxuICAgIHBhdGgsXG4gICAgcGFyYW1zOiBwYXJhbXMgfHwgW10sXG4gICAgaGFzaDogaGFzaCB8fCBidWlsZEhhc2goW10pLFxuICAgIGVzY2FwZWQ6ICFyYXcsXG4gICAgdHJ1c3Rpbmc6ICEhcmF3LFxuICAgIGxvYzogYnVpbGRMb2MobG9jIHx8IG51bGwpLFxuICAgIHN0cmlwOiBzdHJpcCB8fCB7IG9wZW46IGZhbHNlLCBjbG9zZTogZmFsc2UgfSxcbiAgfTtcbn1cblxuZnVuY3Rpb24gYnVpbGRCbG9jayhcbiAgcGF0aDogQnVpbGRlckhlYWQsXG4gIHBhcmFtczogT3B0aW9uPEFTVHYxLkV4cHJlc3Npb25bXT4sXG4gIGhhc2g6IE9wdGlvbjxBU1R2MS5IYXNoPixcbiAgX2RlZmF1bHRCbG9jazogQVNUdjEuUG9zc2libHlEZXByZWNhdGVkQmxvY2ssXG4gIF9lbHNlQmxvY2s/OiBPcHRpb248QVNUdjEuUG9zc2libHlEZXByZWNhdGVkQmxvY2s+LFxuICBsb2M/OiBTb3VyY2VMb2NhdGlvbixcbiAgb3BlblN0cmlwPzogQVNUdjEuU3RyaXBGbGFncyxcbiAgaW52ZXJzZVN0cmlwPzogQVNUdjEuU3RyaXBGbGFncyxcbiAgY2xvc2VTdHJpcD86IEFTVHYxLlN0cmlwRmxhZ3Ncbik6IEFTVHYxLkJsb2NrU3RhdGVtZW50IHtcbiAgbGV0IGRlZmF1bHRCbG9jazogQVNUdjEuQmxvY2s7XG4gIGxldCBlbHNlQmxvY2s6IE9wdGlvbjxBU1R2MS5CbG9jaz4gfCB1bmRlZmluZWQ7XG5cbiAgaWYgKF9kZWZhdWx0QmxvY2sudHlwZSA9PT0gJ1RlbXBsYXRlJykge1xuICAgIGlmIChMT0NBTF9ERUJVRykge1xuICAgICAgZGVwcmVjYXRlKGBiLnByb2dyYW0gaXMgZGVwcmVjYXRlZC4gVXNlIGIuYmxvY2tJdHNlbGYgaW5zdGVhZC5gKTtcbiAgICB9XG5cbiAgICBkZWZhdWx0QmxvY2sgPSAoYXNzaWduKHt9LCBfZGVmYXVsdEJsb2NrLCB7IHR5cGU6ICdCbG9jaycgfSkgYXMgdW5rbm93bikgYXMgQVNUdjEuQmxvY2s7XG4gIH0gZWxzZSB7XG4gICAgZGVmYXVsdEJsb2NrID0gX2RlZmF1bHRCbG9jaztcbiAgfVxuXG4gIGlmIChfZWxzZUJsb2NrICE9PSB1bmRlZmluZWQgJiYgX2Vsc2VCbG9jayAhPT0gbnVsbCAmJiBfZWxzZUJsb2NrLnR5cGUgPT09ICdUZW1wbGF0ZScpIHtcbiAgICBpZiAoTE9DQUxfREVCVUcpIHtcbiAgICAgIGRlcHJlY2F0ZShgYi5wcm9ncmFtIGlzIGRlcHJlY2F0ZWQuIFVzZSBiLmJsb2NrSXRzZWxmIGluc3RlYWQuYCk7XG4gICAgfVxuXG4gICAgZWxzZUJsb2NrID0gKGFzc2lnbih7fSwgX2Vsc2VCbG9jaywgeyB0eXBlOiAnQmxvY2snIH0pIGFzIHVua25vd24pIGFzIEFTVHYxLkJsb2NrO1xuICB9IGVsc2Uge1xuICAgIGVsc2VCbG9jayA9IF9lbHNlQmxvY2s7XG4gIH1cblxuICByZXR1cm4ge1xuICAgIHR5cGU6ICdCbG9ja1N0YXRlbWVudCcsXG4gICAgcGF0aDogYnVpbGRQYXRoKHBhdGgpLFxuICAgIHBhcmFtczogcGFyYW1zIHx8IFtdLFxuICAgIGhhc2g6IGhhc2ggfHwgYnVpbGRIYXNoKFtdKSxcbiAgICBwcm9ncmFtOiBkZWZhdWx0QmxvY2sgfHwgbnVsbCxcbiAgICBpbnZlcnNlOiBlbHNlQmxvY2sgfHwgbnVsbCxcbiAgICBsb2M6IGJ1aWxkTG9jKGxvYyB8fCBudWxsKSxcbiAgICBvcGVuU3RyaXA6IG9wZW5TdHJpcCB8fCB7IG9wZW46IGZhbHNlLCBjbG9zZTogZmFsc2UgfSxcbiAgICBpbnZlcnNlU3RyaXA6IGludmVyc2VTdHJpcCB8fCB7IG9wZW46IGZhbHNlLCBjbG9zZTogZmFsc2UgfSxcbiAgICBjbG9zZVN0cmlwOiBjbG9zZVN0cmlwIHx8IHsgb3BlbjogZmFsc2UsIGNsb3NlOiBmYWxzZSB9LFxuICB9O1xufVxuXG5mdW5jdGlvbiBidWlsZEVsZW1lbnRNb2RpZmllcihcbiAgcGF0aDogQnVpbGRlckhlYWQgfCBBU1R2MS5FeHByZXNzaW9uLFxuICBwYXJhbXM/OiBBU1R2MS5FeHByZXNzaW9uW10sXG4gIGhhc2g/OiBBU1R2MS5IYXNoLFxuICBsb2M/OiBPcHRpb248U291cmNlTG9jYXRpb24+XG4pOiBBU1R2MS5FbGVtZW50TW9kaWZpZXJTdGF0ZW1lbnQge1xuICByZXR1cm4ge1xuICAgIHR5cGU6ICdFbGVtZW50TW9kaWZpZXJTdGF0ZW1lbnQnLFxuICAgIHBhdGg6IGJ1aWxkUGF0aChwYXRoKSxcbiAgICBwYXJhbXM6IHBhcmFtcyB8fCBbXSxcbiAgICBoYXNoOiBoYXNoIHx8IGJ1aWxkSGFzaChbXSksXG4gICAgbG9jOiBidWlsZExvYyhsb2MgfHwgbnVsbCksXG4gIH07XG59XG5cbmZ1bmN0aW9uIGJ1aWxkUGFydGlhbChcbiAgbmFtZTogQVNUdjEuUGF0aEV4cHJlc3Npb24sXG4gIHBhcmFtcz86IEFTVHYxLkV4cHJlc3Npb25bXSxcbiAgaGFzaD86IEFTVHYxLkhhc2gsXG4gIGluZGVudD86IHN0cmluZyxcbiAgbG9jPzogU291cmNlTG9jYXRpb25cbik6IEFTVHYxLlBhcnRpYWxTdGF0ZW1lbnQge1xuICByZXR1cm4ge1xuICAgIHR5cGU6ICdQYXJ0aWFsU3RhdGVtZW50JyxcbiAgICBuYW1lOiBuYW1lLFxuICAgIHBhcmFtczogcGFyYW1zIHx8IFtdLFxuICAgIGhhc2g6IGhhc2ggfHwgYnVpbGRIYXNoKFtdKSxcbiAgICBpbmRlbnQ6IGluZGVudCB8fCAnJyxcbiAgICBzdHJpcDogeyBvcGVuOiBmYWxzZSwgY2xvc2U6IGZhbHNlIH0sXG4gICAgbG9jOiBidWlsZExvYyhsb2MgfHwgbnVsbCksXG4gIH07XG59XG5cbmZ1bmN0aW9uIGJ1aWxkQ29tbWVudCh2YWx1ZTogc3RyaW5nLCBsb2M/OiBTb3VyY2VMb2NhdGlvbik6IEFTVHYxLkNvbW1lbnRTdGF0ZW1lbnQge1xuICByZXR1cm4ge1xuICAgIHR5cGU6ICdDb21tZW50U3RhdGVtZW50JyxcbiAgICB2YWx1ZTogdmFsdWUsXG4gICAgbG9jOiBidWlsZExvYyhsb2MgfHwgbnVsbCksXG4gIH07XG59XG5cbmZ1bmN0aW9uIGJ1aWxkTXVzdGFjaGVDb21tZW50KHZhbHVlOiBzdHJpbmcsIGxvYz86IFNvdXJjZUxvY2F0aW9uKTogQVNUdjEuTXVzdGFjaGVDb21tZW50U3RhdGVtZW50IHtcbiAgcmV0dXJuIHtcbiAgICB0eXBlOiAnTXVzdGFjaGVDb21tZW50U3RhdGVtZW50JyxcbiAgICB2YWx1ZTogdmFsdWUsXG4gICAgbG9jOiBidWlsZExvYyhsb2MgfHwgbnVsbCksXG4gIH07XG59XG5cbmZ1bmN0aW9uIGJ1aWxkQ29uY2F0KFxuICBwYXJ0czogKEFTVHYxLlRleHROb2RlIHwgQVNUdjEuTXVzdGFjaGVTdGF0ZW1lbnQpW10sXG4gIGxvYz86IFNvdXJjZUxvY2F0aW9uXG4pOiBBU1R2MS5Db25jYXRTdGF0ZW1lbnQge1xuICBpZiAoIWlzUHJlc2VudChwYXJ0cykpIHtcbiAgICB0aHJvdyBuZXcgRXJyb3IoYGIuY29uY2F0IHJlcXVpcmVzIGF0IGxlYXN0IG9uZSBwYXJ0YCk7XG4gIH1cblxuICByZXR1cm4ge1xuICAgIHR5cGU6ICdDb25jYXRTdGF0ZW1lbnQnLFxuICAgIHBhcnRzOiBwYXJ0cyB8fCBbXSxcbiAgICBsb2M6IGJ1aWxkTG9jKGxvYyB8fCBudWxsKSxcbiAgfTtcbn1cblxuLy8gTm9kZXNcblxuZXhwb3J0IHR5cGUgRWxlbWVudFBhcnRzID1cbiAgfCBbJ2F0dHJzJywgLi4uQXR0clNleHBbXV1cbiAgfCBbJ21vZGlmaWVycycsIC4uLk1vZGlmaWVyU2V4cFtdXVxuICB8IFsnYm9keScsIC4uLkFTVHYxLlN0YXRlbWVudFtdXVxuICB8IFsnY29tbWVudHMnLCAuLi5FbGVtZW50Q29tbWVudFtdXVxuICB8IFsnYXMnLCAuLi5zdHJpbmdbXV1cbiAgfCBbJ2xvYycsIFNvdXJjZUxvY2F0aW9uXTtcblxuZXhwb3J0IHR5cGUgUGF0aFNleHAgPSBzdHJpbmcgfCBbJ3BhdGgnLCBzdHJpbmcsIExvY1NleHA/XTtcblxuZXhwb3J0IHR5cGUgTW9kaWZpZXJTZXhwID1cbiAgfCBzdHJpbmdcbiAgfCBbUGF0aFNleHAsIExvY1NleHA/XVxuICB8IFtQYXRoU2V4cCwgQVNUdjEuRXhwcmVzc2lvbltdLCBMb2NTZXhwP11cbiAgfCBbUGF0aFNleHAsIEFTVHYxLkV4cHJlc3Npb25bXSwgRGljdDxBU1R2MS5FeHByZXNzaW9uPiwgTG9jU2V4cD9dO1xuXG5leHBvcnQgdHlwZSBBdHRyU2V4cCA9IFtzdHJpbmcsIEFTVHYxLkF0dHJOb2RlWyd2YWx1ZSddIHwgc3RyaW5nLCBMb2NTZXhwP107XG5cbmV4cG9ydCB0eXBlIExvY1NleHAgPSBbJ2xvYycsIFNvdXJjZUxvY2F0aW9uXTtcblxuZXhwb3J0IHR5cGUgRWxlbWVudENvbW1lbnQgPSBBU1R2MS5NdXN0YWNoZUNvbW1lbnRTdGF0ZW1lbnQgfCBTb3VyY2VMb2NhdGlvbiB8IHN0cmluZztcblxuZXhwb3J0IHR5cGUgU2V4cFZhbHVlID1cbiAgfCBzdHJpbmdcbiAgfCBBU1R2MS5FeHByZXNzaW9uW11cbiAgfCBEaWN0PEFTVHYxLkV4cHJlc3Npb24+XG4gIHwgTG9jU2V4cFxuICB8IFBhdGhTZXhwXG4gIHwgdW5kZWZpbmVkO1xuXG5leHBvcnQgaW50ZXJmYWNlIEJ1aWxkRWxlbWVudE9wdGlvbnMge1xuICBhdHRycz86IEFTVHYxLkF0dHJOb2RlW107XG4gIG1vZGlmaWVycz86IEFTVHYxLkVsZW1lbnRNb2RpZmllclN0YXRlbWVudFtdO1xuICBjaGlsZHJlbj86IEFTVHYxLlN0YXRlbWVudFtdO1xuICBjb21tZW50cz86IEVsZW1lbnRDb21tZW50W107XG4gIGJsb2NrUGFyYW1zPzogc3RyaW5nW107XG4gIGxvYz86IFNvdXJjZVNwYW47XG59XG5cbmZ1bmN0aW9uIGJ1aWxkRWxlbWVudCh0YWc6IFRhZ0Rlc2NyaXB0b3IsIG9wdGlvbnM6IEJ1aWxkRWxlbWVudE9wdGlvbnMgPSB7fSk6IEFTVHYxLkVsZW1lbnROb2RlIHtcbiAgbGV0IHsgYXR0cnMsIGJsb2NrUGFyYW1zLCBtb2RpZmllcnMsIGNvbW1lbnRzLCBjaGlsZHJlbiwgbG9jIH0gPSBvcHRpb25zO1xuXG4gIGxldCB0YWdOYW1lOiBzdHJpbmc7XG5cbiAgLy8gdGhpcyBpcyB1c2VkIGZvciBiYWNrd2FyZHMgY29tcGF0LCBwcmlvciB0byBgc2VsZkNsb3NpbmdgIGJlaW5nIHBhcnQgb2YgdGhlIEVsZW1lbnROb2RlIEFTVFxuICBsZXQgc2VsZkNsb3NpbmcgPSBmYWxzZTtcbiAgaWYgKHR5cGVvZiB0YWcgPT09ICdvYmplY3QnKSB7XG4gICAgc2VsZkNsb3NpbmcgPSB0YWcuc2VsZkNsb3Npbmc7XG4gICAgdGFnTmFtZSA9IHRhZy5uYW1lO1xuICB9IGVsc2UgaWYgKHRhZy5zbGljZSgtMSkgPT09ICcvJykge1xuICAgIHRhZ05hbWUgPSB0YWcuc2xpY2UoMCwgLTEpO1xuICAgIHNlbGZDbG9zaW5nID0gdHJ1ZTtcbiAgfSBlbHNlIHtcbiAgICB0YWdOYW1lID0gdGFnO1xuICB9XG5cbiAgcmV0dXJuIHtcbiAgICB0eXBlOiAnRWxlbWVudE5vZGUnLFxuICAgIHRhZzogdGFnTmFtZSxcbiAgICBzZWxmQ2xvc2luZzogc2VsZkNsb3NpbmcsXG4gICAgYXR0cmlidXRlczogYXR0cnMgfHwgW10sXG4gICAgYmxvY2tQYXJhbXM6IGJsb2NrUGFyYW1zIHx8IFtdLFxuICAgIG1vZGlmaWVyczogbW9kaWZpZXJzIHx8IFtdLFxuICAgIGNvbW1lbnRzOiAoY29tbWVudHMgYXMgQVNUdjEuTXVzdGFjaGVDb21tZW50U3RhdGVtZW50W10pIHx8IFtdLFxuICAgIGNoaWxkcmVuOiBjaGlsZHJlbiB8fCBbXSxcbiAgICBsb2M6IGJ1aWxkTG9jKGxvYyB8fCBudWxsKSxcbiAgfTtcbn1cblxuZnVuY3Rpb24gYnVpbGRBdHRyKFxuICBuYW1lOiBzdHJpbmcsXG4gIHZhbHVlOiBBU1R2MS5BdHRyTm9kZVsndmFsdWUnXSxcbiAgbG9jPzogU291cmNlTG9jYXRpb25cbik6IEFTVHYxLkF0dHJOb2RlIHtcbiAgcmV0dXJuIHtcbiAgICB0eXBlOiAnQXR0ck5vZGUnLFxuICAgIG5hbWU6IG5hbWUsXG4gICAgdmFsdWU6IHZhbHVlLFxuICAgIGxvYzogYnVpbGRMb2MobG9jIHx8IG51bGwpLFxuICB9O1xufVxuXG5mdW5jdGlvbiBidWlsZFRleHQoY2hhcnM/OiBzdHJpbmcsIGxvYz86IFNvdXJjZUxvY2F0aW9uKTogQVNUdjEuVGV4dE5vZGUge1xuICByZXR1cm4ge1xuICAgIHR5cGU6ICdUZXh0Tm9kZScsXG4gICAgY2hhcnM6IGNoYXJzIHx8ICcnLFxuICAgIGxvYzogYnVpbGRMb2MobG9jIHx8IG51bGwpLFxuICB9O1xufVxuXG4vLyBFeHByZXNzaW9uc1xuXG5mdW5jdGlvbiBidWlsZFNleHByKFxuICBwYXRoOiBCdWlsZGVySGVhZCxcbiAgcGFyYW1zPzogQVNUdjEuRXhwcmVzc2lvbltdLFxuICBoYXNoPzogQVNUdjEuSGFzaCxcbiAgbG9jPzogU291cmNlTG9jYXRpb25cbik6IEFTVHYxLlN1YkV4cHJlc3Npb24ge1xuICByZXR1cm4ge1xuICAgIHR5cGU6ICdTdWJFeHByZXNzaW9uJyxcbiAgICBwYXRoOiBidWlsZFBhdGgocGF0aCksXG4gICAgcGFyYW1zOiBwYXJhbXMgfHwgW10sXG4gICAgaGFzaDogaGFzaCB8fCBidWlsZEhhc2goW10pLFxuICAgIGxvYzogYnVpbGRMb2MobG9jIHx8IG51bGwpLFxuICB9O1xufVxuXG5mdW5jdGlvbiBoZWFkVG9TdHJpbmcoaGVhZDogQVNUdjEuUGF0aEhlYWQpOiB7IG9yaWdpbmFsOiBzdHJpbmc7IHBhcnRzOiBzdHJpbmdbXSB9IHtcbiAgc3dpdGNoIChoZWFkLnR5cGUpIHtcbiAgICBjYXNlICdBdEhlYWQnOlxuICAgICAgcmV0dXJuIHsgb3JpZ2luYWw6IGhlYWQubmFtZSwgcGFydHM6IFtoZWFkLm5hbWVdIH07XG4gICAgY2FzZSAnVGhpc0hlYWQnOlxuICAgICAgcmV0dXJuIHsgb3JpZ2luYWw6IGB0aGlzYCwgcGFydHM6IFtdIH07XG4gICAgY2FzZSAnVmFySGVhZCc6XG4gICAgICByZXR1cm4geyBvcmlnaW5hbDogaGVhZC5uYW1lLCBwYXJ0czogW2hlYWQubmFtZV0gfTtcbiAgfVxufVxuXG5mdW5jdGlvbiBidWlsZEhlYWQoXG4gIG9yaWdpbmFsOiBzdHJpbmcsXG4gIGxvYzogU291cmNlTG9jYXRpb25cbik6IHsgaGVhZDogQVNUdjEuUGF0aEhlYWQ7IHRhaWw6IHN0cmluZ1tdIH0ge1xuICBsZXQgW2hlYWQsIC4uLnRhaWxdID0gb3JpZ2luYWwuc3BsaXQoJy4nKTtcbiAgbGV0IGhlYWROb2RlOiBBU1R2MS5QYXRoSGVhZDtcblxuICBpZiAoaGVhZCA9PT0gJ3RoaXMnKSB7XG4gICAgaGVhZE5vZGUgPSB7XG4gICAgICB0eXBlOiAnVGhpc0hlYWQnLFxuICAgICAgbG9jOiBidWlsZExvYyhsb2MgfHwgbnVsbCksXG4gICAgfTtcbiAgfSBlbHNlIGlmIChoZWFkWzBdID09PSAnQCcpIHtcbiAgICBoZWFkTm9kZSA9IHtcbiAgICAgIHR5cGU6ICdBdEhlYWQnLFxuICAgICAgbmFtZTogaGVhZCxcbiAgICAgIGxvYzogYnVpbGRMb2MobG9jIHx8IG51bGwpLFxuICAgIH07XG4gIH0gZWxzZSB7XG4gICAgaGVhZE5vZGUgPSB7XG4gICAgICB0eXBlOiAnVmFySGVhZCcsXG4gICAgICBuYW1lOiBoZWFkLFxuICAgICAgbG9jOiBidWlsZExvYyhsb2MgfHwgbnVsbCksXG4gICAgfTtcbiAgfVxuXG4gIHJldHVybiB7XG4gICAgaGVhZDogaGVhZE5vZGUsXG4gICAgdGFpbCxcbiAgfTtcbn1cblxuZnVuY3Rpb24gYnVpbGRUaGlzKGxvYzogU291cmNlTG9jYXRpb24pOiBBU1R2MS5QYXRoSGVhZCB7XG4gIHJldHVybiB7XG4gICAgdHlwZTogJ1RoaXNIZWFkJyxcbiAgICBsb2M6IGJ1aWxkTG9jKGxvYyB8fCBudWxsKSxcbiAgfTtcbn1cblxuZnVuY3Rpb24gYnVpbGRBdE5hbWUobmFtZTogc3RyaW5nLCBsb2M6IFNvdXJjZUxvY2F0aW9uKTogQVNUdjEuUGF0aEhlYWQge1xuICAvLyB0aGUgYEBgIHNob3VsZCBiZSBpbmNsdWRlZCBzbyB3ZSBoYXZlIGEgY29tcGxldGUgc291cmNlIHJhbmdlXG4gIGFzc2VydChuYW1lWzBdID09PSAnQCcsIGBjYWxsIGJ1aWxkZXJzLmF0KCkgd2l0aCBhIHN0cmluZyB0aGF0IHN0YXJ0cyB3aXRoICdAJ2ApO1xuXG4gIHJldHVybiB7XG4gICAgdHlwZTogJ0F0SGVhZCcsXG4gICAgbmFtZSxcbiAgICBsb2M6IGJ1aWxkTG9jKGxvYyB8fCBudWxsKSxcbiAgfTtcbn1cblxuZnVuY3Rpb24gYnVpbGRWYXIobmFtZTogc3RyaW5nLCBsb2M6IFNvdXJjZUxvY2F0aW9uKTogQVNUdjEuUGF0aEhlYWQge1xuICBhc3NlcnQobmFtZSAhPT0gJ3RoaXMnLCBgWW91IGNhbGxlZCBidWlsZGVycy52YXIoKSB3aXRoICd0aGlzJy4gQ2FsbCBidWlsZGVycy50aGlzIGluc3RlYWRgKTtcbiAgYXNzZXJ0KFxuICAgIG5hbWVbMF0gIT09ICdAJyxcbiAgICBgWW91IGNhbGxlZCBidWlsZGVycy52YXIoKSB3aXRoICcke25hbWV9Jy4gQ2FsbCBidWlsZGVycy5hdCgnJHtuYW1lfScpIGluc3RlYWRgXG4gICk7XG5cbiAgcmV0dXJuIHtcbiAgICB0eXBlOiAnVmFySGVhZCcsXG4gICAgbmFtZSxcbiAgICBsb2M6IGJ1aWxkTG9jKGxvYyB8fCBudWxsKSxcbiAgfTtcbn1cblxuZnVuY3Rpb24gYnVpbGRIZWFkRnJvbVN0cmluZyhoZWFkOiBzdHJpbmcsIGxvYzogU291cmNlTG9jYXRpb24pOiBBU1R2MS5QYXRoSGVhZCB7XG4gIGlmIChoZWFkWzBdID09PSAnQCcpIHtcbiAgICByZXR1cm4gYnVpbGRBdE5hbWUoaGVhZCwgbG9jKTtcbiAgfSBlbHNlIGlmIChoZWFkID09PSAndGhpcycpIHtcbiAgICByZXR1cm4gYnVpbGRUaGlzKGxvYyk7XG4gIH0gZWxzZSB7XG4gICAgcmV0dXJuIGJ1aWxkVmFyKGhlYWQsIGxvYyk7XG4gIH1cbn1cblxuZnVuY3Rpb24gYnVpbGROYW1lZEJsb2NrTmFtZShuYW1lOiBzdHJpbmcsIGxvYz86IFNvdXJjZUxvY2F0aW9uKTogQVNUdjEuTmFtZWRCbG9ja05hbWUge1xuICByZXR1cm4ge1xuICAgIHR5cGU6ICdOYW1lZEJsb2NrTmFtZScsXG4gICAgbmFtZSxcbiAgICBsb2M6IGJ1aWxkTG9jKGxvYyB8fCBudWxsKSxcbiAgfTtcbn1cblxuZnVuY3Rpb24gYnVpbGRDbGVhblBhdGgoXG4gIGhlYWQ6IEFTVHYxLlBhdGhIZWFkLFxuICB0YWlsOiBzdHJpbmdbXSxcbiAgbG9jOiBTb3VyY2VMb2NhdGlvblxuKTogQVNUdjEuUGF0aEV4cHJlc3Npb24ge1xuICBsZXQgeyBvcmlnaW5hbDogb3JpZ2luYWxIZWFkLCBwYXJ0czogaGVhZFBhcnRzIH0gPSBoZWFkVG9TdHJpbmcoaGVhZCk7XG4gIGxldCBwYXJ0cyA9IFsuLi5oZWFkUGFydHMsIC4uLnRhaWxdO1xuICBsZXQgb3JpZ2luYWwgPSBbLi4ub3JpZ2luYWxIZWFkLCAuLi5wYXJ0c10uam9pbignLicpO1xuXG4gIHJldHVybiBuZXcgUGF0aEV4cHJlc3Npb25JbXBsVjEob3JpZ2luYWwsIGhlYWQsIHRhaWwsIGJ1aWxkTG9jKGxvYyB8fCBudWxsKSk7XG59XG5cbmZ1bmN0aW9uIGJ1aWxkUGF0aChcbiAgcGF0aDogQVNUdjEuUGF0aEV4cHJlc3Npb24gfCBzdHJpbmcgfCB7IGhlYWQ6IHN0cmluZzsgdGFpbDogc3RyaW5nW10gfSxcbiAgbG9jPzogU291cmNlTG9jYXRpb25cbik6IEFTVHYxLlBhdGhFeHByZXNzaW9uO1xuZnVuY3Rpb24gYnVpbGRQYXRoKHBhdGg6IEFTVHYxLkV4cHJlc3Npb24sIGxvYz86IFNvdXJjZUxvY2F0aW9uKTogQVNUdjEuRXhwcmVzc2lvbjtcbmZ1bmN0aW9uIGJ1aWxkUGF0aChwYXRoOiBCdWlsZGVySGVhZCB8IEFTVHYxLkV4cHJlc3Npb24sIGxvYz86IFNvdXJjZUxvY2F0aW9uKTogQVNUdjEuRXhwcmVzc2lvbjtcbmZ1bmN0aW9uIGJ1aWxkUGF0aChcbiAgcGF0aDogQnVpbGRlckhlYWQgfCBBU1R2MS5FeHByZXNzaW9uIHwgeyBoZWFkOiBzdHJpbmc7IHRhaWw6IHN0cmluZ1tdIH0sXG4gIGxvYz86IFNvdXJjZUxvY2F0aW9uXG4pOiBBU1R2MS5FeHByZXNzaW9uIHtcbiAgaWYgKHR5cGVvZiBwYXRoICE9PSAnc3RyaW5nJykge1xuICAgIGlmICgndHlwZScgaW4gcGF0aCkge1xuICAgICAgcmV0dXJuIHBhdGg7XG4gICAgfSBlbHNlIHtcbiAgICAgIGxldCB7IGhlYWQsIHRhaWwgfSA9IGJ1aWxkSGVhZChwYXRoLmhlYWQsIFNvdXJjZVNwYW4uYnJva2VuKCkpO1xuXG4gICAgICBhc3NlcnQoXG4gICAgICAgIHRhaWwubGVuZ3RoID09PSAwLFxuICAgICAgICBgYnVpbGRlci5wYXRoKHsgaGVhZCwgdGFpbCB9KSBzaG91bGQgbm90IGJlIGNhbGxlZCB3aXRoIGEgaGVhZCB3aXRoIGRvdHMgaW4gaXRgXG4gICAgICApO1xuXG4gICAgICBsZXQgeyBvcmlnaW5hbDogb3JpZ2luYWxIZWFkIH0gPSBoZWFkVG9TdHJpbmcoaGVhZCk7XG5cbiAgICAgIHJldHVybiBuZXcgUGF0aEV4cHJlc3Npb25JbXBsVjEoXG4gICAgICAgIFtvcmlnaW5hbEhlYWQsIC4uLnRhaWxdLmpvaW4oJy4nKSxcbiAgICAgICAgaGVhZCxcbiAgICAgICAgdGFpbCxcbiAgICAgICAgYnVpbGRMb2MobG9jIHx8IG51bGwpXG4gICAgICApO1xuICAgIH1cbiAgfVxuXG4gIGxldCB7IGhlYWQsIHRhaWwgfSA9IGJ1aWxkSGVhZChwYXRoLCBTb3VyY2VTcGFuLmJyb2tlbigpKTtcblxuICByZXR1cm4gbmV3IFBhdGhFeHByZXNzaW9uSW1wbFYxKHBhdGgsIGhlYWQsIHRhaWwsIGJ1aWxkTG9jKGxvYyB8fCBudWxsKSk7XG59XG5cbmZ1bmN0aW9uIGJ1aWxkTGl0ZXJhbDxUIGV4dGVuZHMgQVNUdjEuTGl0ZXJhbD4oXG4gIHR5cGU6IFRbJ3R5cGUnXSxcbiAgdmFsdWU6IFRbJ3ZhbHVlJ10sXG4gIGxvYz86IFNvdXJjZUxvY2F0aW9uXG4pOiBUIHtcbiAgcmV0dXJuIHtcbiAgICB0eXBlLFxuICAgIHZhbHVlLFxuICAgIG9yaWdpbmFsOiB2YWx1ZSxcbiAgICBsb2M6IGJ1aWxkTG9jKGxvYyB8fCBudWxsKSxcbiAgfSBhcyBUO1xufVxuXG4vLyBNaXNjZWxsYW5lb3VzXG5cbmZ1bmN0aW9uIGJ1aWxkSGFzaChwYWlycz86IEFTVHYxLkhhc2hQYWlyW10sIGxvYz86IFNvdXJjZUxvY2F0aW9uKTogQVNUdjEuSGFzaCB7XG4gIHJldHVybiB7XG4gICAgdHlwZTogJ0hhc2gnLFxuICAgIHBhaXJzOiBwYWlycyB8fCBbXSxcbiAgICBsb2M6IGJ1aWxkTG9jKGxvYyB8fCBudWxsKSxcbiAgfTtcbn1cblxuZnVuY3Rpb24gYnVpbGRQYWlyKGtleTogc3RyaW5nLCB2YWx1ZTogQVNUdjEuRXhwcmVzc2lvbiwgbG9jPzogU291cmNlTG9jYXRpb24pOiBBU1R2MS5IYXNoUGFpciB7XG4gIHJldHVybiB7XG4gICAgdHlwZTogJ0hhc2hQYWlyJyxcbiAgICBrZXk6IGtleSxcbiAgICB2YWx1ZSxcbiAgICBsb2M6IGJ1aWxkTG9jKGxvYyB8fCBudWxsKSxcbiAgfTtcbn1cblxuZnVuY3Rpb24gYnVpbGRQcm9ncmFtKFxuICBib2R5PzogQVNUdjEuU3RhdGVtZW50W10sXG4gIGJsb2NrUGFyYW1zPzogc3RyaW5nW10sXG4gIGxvYz86IFNvdXJjZUxvY2F0aW9uXG4pOiBBU1R2MS5UZW1wbGF0ZSB7XG4gIHJldHVybiB7XG4gICAgdHlwZTogJ1RlbXBsYXRlJyxcbiAgICBib2R5OiBib2R5IHx8IFtdLFxuICAgIGJsb2NrUGFyYW1zOiBibG9ja1BhcmFtcyB8fCBbXSxcbiAgICBsb2M6IGJ1aWxkTG9jKGxvYyB8fCBudWxsKSxcbiAgfTtcbn1cblxuZnVuY3Rpb24gYnVpbGRCbG9ja0l0c2VsZihcbiAgYm9keT86IEFTVHYxLlN0YXRlbWVudFtdLFxuICBibG9ja1BhcmFtcz86IHN0cmluZ1tdLFxuICBjaGFpbmVkID0gZmFsc2UsXG4gIGxvYz86IFNvdXJjZUxvY2F0aW9uXG4pOiBBU1R2MS5CbG9jayB7XG4gIHJldHVybiB7XG4gICAgdHlwZTogJ0Jsb2NrJyxcbiAgICBib2R5OiBib2R5IHx8IFtdLFxuICAgIGJsb2NrUGFyYW1zOiBibG9ja1BhcmFtcyB8fCBbXSxcbiAgICBjaGFpbmVkLFxuICAgIGxvYzogYnVpbGRMb2MobG9jIHx8IG51bGwpLFxuICB9O1xufVxuXG5mdW5jdGlvbiBidWlsZFRlbXBsYXRlKFxuICBib2R5PzogQVNUdjEuU3RhdGVtZW50W10sXG4gIGJsb2NrUGFyYW1zPzogc3RyaW5nW10sXG4gIGxvYz86IFNvdXJjZUxvY2F0aW9uXG4pOiBBU1R2MS5UZW1wbGF0ZSB7XG4gIHJldHVybiB7XG4gICAgdHlwZTogJ1RlbXBsYXRlJyxcbiAgICBib2R5OiBib2R5IHx8IFtdLFxuICAgIGJsb2NrUGFyYW1zOiBibG9ja1BhcmFtcyB8fCBbXSxcbiAgICBsb2M6IGJ1aWxkTG9jKGxvYyB8fCBudWxsKSxcbiAgfTtcbn1cblxuZnVuY3Rpb24gYnVpbGRQb3NpdGlvbihsaW5lOiBudW1iZXIsIGNvbHVtbjogbnVtYmVyKTogU291cmNlUG9zaXRpb24ge1xuICByZXR1cm4ge1xuICAgIGxpbmUsXG4gICAgY29sdW1uLFxuICB9O1xufVxuXG5mdW5jdGlvbiBidWlsZExvYyhsb2M6IE9wdGlvbjxTb3VyY2VMb2NhdGlvbj4pOiBTb3VyY2VTcGFuO1xuZnVuY3Rpb24gYnVpbGRMb2MoXG4gIHN0YXJ0TGluZTogbnVtYmVyLFxuICBzdGFydENvbHVtbjogbnVtYmVyLFxuICBlbmRMaW5lPzogbnVtYmVyLFxuICBlbmRDb2x1bW4/OiBudW1iZXIsXG4gIHNvdXJjZT86IHN0cmluZ1xuKTogU291cmNlU3BhbjtcblxuZnVuY3Rpb24gYnVpbGRMb2MoLi4uYXJnczogYW55W10pOiBTb3VyY2VTcGFuIHtcbiAgaWYgKGFyZ3MubGVuZ3RoID09PSAxKSB7XG4gICAgbGV0IGxvYyA9IGFyZ3NbMF07XG5cbiAgICBpZiAobG9jICYmIHR5cGVvZiBsb2MgPT09ICdvYmplY3QnKSB7XG4gICAgICByZXR1cm4gU291cmNlU3Bhbi5mb3JIYnNMb2MoU09VUkNFKCksIGxvYyk7XG4gICAgfSBlbHNlIHtcbiAgICAgIHJldHVybiBTb3VyY2VTcGFuLmZvckhic0xvYyhTT1VSQ0UoKSwgU1lOVEhFVElDX0xPQ0FUSU9OKTtcbiAgICB9XG4gIH0gZWxzZSB7XG4gICAgbGV0IFtzdGFydExpbmUsIHN0YXJ0Q29sdW1uLCBlbmRMaW5lLCBlbmRDb2x1bW4sIF9zb3VyY2VdID0gYXJncztcbiAgICBsZXQgc291cmNlID0gX3NvdXJjZSA/IG5ldyBTb3VyY2UoJycsIF9zb3VyY2UpIDogU09VUkNFKCk7XG5cbiAgICByZXR1cm4gU291cmNlU3Bhbi5mb3JIYnNMb2Moc291cmNlLCB7XG4gICAgICBzdGFydDoge1xuICAgICAgICBsaW5lOiBzdGFydExpbmUsXG4gICAgICAgIGNvbHVtbjogc3RhcnRDb2x1bW4sXG4gICAgICB9LFxuICAgICAgZW5kOiB7XG4gICAgICAgIGxpbmU6IGVuZExpbmUsXG4gICAgICAgIGNvbHVtbjogZW5kQ29sdW1uLFxuICAgICAgfSxcbiAgICB9KTtcbiAgfVxufVxuXG5leHBvcnQgZGVmYXVsdCB7XG4gIG11c3RhY2hlOiBidWlsZE11c3RhY2hlLFxuICBibG9jazogYnVpbGRCbG9jayxcbiAgcGFydGlhbDogYnVpbGRQYXJ0aWFsLFxuICBjb21tZW50OiBidWlsZENvbW1lbnQsXG4gIG11c3RhY2hlQ29tbWVudDogYnVpbGRNdXN0YWNoZUNvbW1lbnQsXG4gIGVsZW1lbnQ6IGJ1aWxkRWxlbWVudCxcbiAgZWxlbWVudE1vZGlmaWVyOiBidWlsZEVsZW1lbnRNb2RpZmllcixcbiAgYXR0cjogYnVpbGRBdHRyLFxuICB0ZXh0OiBidWlsZFRleHQsXG4gIHNleHByOiBidWlsZFNleHByLFxuXG4gIGNvbmNhdDogYnVpbGRDb25jYXQsXG4gIGhhc2g6IGJ1aWxkSGFzaCxcbiAgcGFpcjogYnVpbGRQYWlyLFxuICBsaXRlcmFsOiBidWlsZExpdGVyYWwsXG4gIHByb2dyYW06IGJ1aWxkUHJvZ3JhbSxcbiAgYmxvY2tJdHNlbGY6IGJ1aWxkQmxvY2tJdHNlbGYsXG4gIHRlbXBsYXRlOiBidWlsZFRlbXBsYXRlLFxuICBsb2M6IGJ1aWxkTG9jLFxuICBwb3M6IGJ1aWxkUG9zaXRpb24sXG5cbiAgcGF0aDogYnVpbGRQYXRoLFxuXG4gIGZ1bGxQYXRoOiBidWlsZENsZWFuUGF0aCxcbiAgaGVhZDogYnVpbGRIZWFkRnJvbVN0cmluZyxcbiAgYXQ6IGJ1aWxkQXROYW1lLFxuICB2YXI6IGJ1aWxkVmFyLFxuICB0aGlzOiBidWlsZFRoaXMsXG4gIGJsb2NrTmFtZTogYnVpbGROYW1lZEJsb2NrTmFtZSxcblxuICBzdHJpbmc6IGxpdGVyYWwoJ1N0cmluZ0xpdGVyYWwnKSBhcyAodmFsdWU6IHN0cmluZykgPT4gQVNUdjEuU3RyaW5nTGl0ZXJhbCxcbiAgYm9vbGVhbjogbGl0ZXJhbCgnQm9vbGVhbkxpdGVyYWwnKSBhcyAodmFsdWU6IGJvb2xlYW4pID0+IEFTVHYxLkJvb2xlYW5MaXRlcmFsLFxuICBudW1iZXI6IGxpdGVyYWwoJ051bWJlckxpdGVyYWwnKSBhcyAodmFsdWU6IG51bWJlcikgPT4gQVNUdjEuTnVtYmVyTGl0ZXJhbCxcbiAgdW5kZWZpbmVkKCk6IEFTVHYxLlVuZGVmaW5lZExpdGVyYWwge1xuICAgIHJldHVybiBidWlsZExpdGVyYWwoJ1VuZGVmaW5lZExpdGVyYWwnLCB1bmRlZmluZWQpO1xuICB9LFxuICBudWxsKCk6IEFTVHYxLk51bGxMaXRlcmFsIHtcbiAgICByZXR1cm4gYnVpbGRMaXRlcmFsKCdOdWxsTGl0ZXJhbCcsIG51bGwpO1xuICB9LFxufTtcblxudHlwZSBCdWlsZExpdGVyYWw8VCBleHRlbmRzIEFTVHYxLkxpdGVyYWw+ID0gKHZhbHVlOiBUWyd2YWx1ZSddKSA9PiBUO1xuXG5mdW5jdGlvbiBsaXRlcmFsPFQgZXh0ZW5kcyBBU1R2MS5MaXRlcmFsPih0eXBlOiBUWyd0eXBlJ10pOiBCdWlsZExpdGVyYWw8VD4ge1xuICByZXR1cm4gZnVuY3Rpb24gKHZhbHVlOiBUWyd2YWx1ZSddLCBsb2M/OiBTb3VyY2VMb2NhdGlvbik6IFQge1xuICAgIHJldHVybiBidWlsZExpdGVyYWwodHlwZSwgdmFsdWUsIGxvYyk7XG4gIH07XG59XG4iXSwic291cmNlUm9vdCI6IiJ9

@@ -32,3 +32,3 @@ import { Dict, Option } from '@glimmer/interfaces';

}
declare function buildElement(tag: TagDescriptor, options: BuildElementOptions): ASTv1.ElementNode;
declare function buildElement(tag: TagDescriptor, options?: BuildElementOptions): ASTv1.ElementNode;
declare function buildAttr(name: string, value: ASTv1.AttrNode['value'], loc?: SourceLocation): ASTv1.AttrNode;

@@ -35,0 +35,0 @@ declare function buildText(chars?: string, loc?: SourceLocation): ASTv1.TextNode;

{
"name": "@glimmer/syntax",
"version": "0.83.1",
"version": "0.84.0",
"repository": "https://github.com/glimmerjs/glimmer-vm/tree/master/packages/@glimmer/syntax",
"dependencies": {
"@glimmer/interfaces": "0.83.1",
"@glimmer/util": "0.83.1",
"@glimmer/interfaces": "0.84.0",
"@glimmer/util": "0.84.0",
"@handlebars/parser": "~2.0.0",

@@ -12,3 +12,3 @@ "simple-html-tokenizer": "^0.5.11"

"devDependencies": {
"@glimmer/local-debug-flags": "0.83.1",
"@glimmer/local-debug-flags": "0.84.0",
"@types/qunit": "^2.9.0"

@@ -15,0 +15,0 @@ },

Sorry, the diff of this file is too big to display

Sorry, the diff of this file is not supported yet

Sorry, the diff of this file is not supported yet

Sorry, the diff of this file is not supported yet

Sorry, the diff of this file is not supported yet

SocketSocket SOC 2 Logo

Product

  • Package Alerts
  • Integrations
  • Docs
  • Pricing
  • FAQ
  • Roadmap
  • Changelog

Packages

npm

Stay in touch

Get open source security insights delivered straight into your inbox.


  • Terms
  • Privacy
  • Security

Made with ⚡️ by Socket Inc