UNPKG

14.6 kBJavaScriptView Raw
1var v=Object.create;var a=Object.defineProperty;var k=Object.getOwnPropertyDescriptor;var E=Object.getOwnPropertyNames,m=Object.getOwnPropertySymbols,I=Object.getPrototypeOf,P=Object.prototype.hasOwnProperty,h=Object.prototype.propertyIsEnumerable;var x=(t,o,e)=>o in t?a(t,o,{enumerable:!0,configurable:!0,writable:!0,value:e}):t[o]=e,s=(t,o)=>{for(var e in o||(o={}))P.call(o,e)&&x(t,e,o[e]);if(m)for(var e of m(o))h.call(o,e)&&x(t,e,o[e]);return t};var y=t=>a(t,"__esModule",{value:!0});var b=(t,o)=>{y(t);for(var e in o)a(t,e,{get:o[e],enumerable:!0})},O=(t,o,e)=>{if(o&&typeof o=="object"||typeof o=="function")for(let r of E(o))!P.call(t,r)&&r!=="default"&&a(t,r,{get:()=>o[r],enumerable:!(e=k(o,r))||e.enumerable});return t},p=t=>O(y(a(t!=null?v(I(t)):{},"default",t&&t.__esModule&&"default"in t?{get:()=>t.default,enumerable:!0}:{value:t,enumerable:!0})),t);b(exports,{Env:()=>f,createPlugin:()=>C,logger:()=>V});var d={};b(d,{Levels:()=>n,colors:()=>l.default,debug:()=>D,error:()=>g,getLogs:()=>R,info:()=>w,logger:()=>u,newline:()=>F,raw:()=>T,warn:()=>M});var l=p(require("kleur"));var f={PRODUCTION:"production",DEVELOPMENT:"development"};var n;(function(i){i.Debug="debug",i.Info="info",i.Warn="warn",i.Err="error"})(n||(n={}));var c=[],H={[n.Debug]:"magenta",[n.Info]:"blue",[n.Warn]:"yellow",[n.Err]:"red"};function R(){if(!process.env.TESTING)throw new Error("Internal method was called outside test mode");return c}function u(t){if(process.env.TESTING)c.push(t);else{let o=process.env.PRESTA_DEBUG,e=process.env.PRESTA_ENV===f.PRODUCTION?"prod":"dev";if(!o&&t.level===n.Debug)return;console.log([l.default.gray(e),l.default[H[t.level||"info"]](t.label),t.message,t.duration?l.default.gray("+"+t.duration):"",t.error?`
2
3${t.error.stack||t.error}
4
5`:""].filter(Boolean).join(" "))}}function D(t){u(s({level:n.Debug},t))}function w(t){u(s({level:n.Info},t))}function M(t){u(s({level:n.Warn},t))}function g(t){u(s({level:n.Err},t))}function T(...t){process.env.TESTING?c.push(t):console.log(...t)}function F(){process.env.TESTING||console.log("")}var S=p(require("fs")),j=p(require("path")),N=p(require("get-port"));var B;(function(r){r.PostBuild="post-build",r.BuildFile="build-file",r.BrowserRefresh="browser-refresh"})(B||(B={}));function C(t){return t}var V=d;0&&(module.exports={Env,createPlugin,logger});
6//# sourceMappingURL=data:application/json;base64,ewogICJ2ZXJzaW9uIjogMywKICAic291cmNlcyI6IFsiLi4vbGliL2luZGV4LnRzIiwgIi4uL2xpYi9sb2cudHMiLCAiLi4vbGliL2NvbnN0YW50cy50cyIsICIuLi9saWIvY29uZmlnLnRzIiwgIi4uL2xpYi9jcmVhdGVFbWl0dGVyLnRzIiwgIi4uL2xpYi9wbHVnaW5zLnRzIl0sCiAgInNvdXJjZXNDb250ZW50IjogWyIvKlxuICogQW55IHVzZWQgZXhwb3J0cyBvZiB0aGUgY29yZSBsaWJyYXJ5IG5lZWQgdG8gYmUgaW4gdGhpcyBmaWxlXG4gKi9cblxuaW1wb3J0ICogYXMgbG9nIGZyb20gJy4vbG9nJ1xuZXhwb3J0IGNvbnN0IGxvZ2dlciA9IGxvZ1xuXG5leHBvcnQgeyBFbnYgfSBmcm9tICcuL2NvbnN0YW50cydcbmV4cG9ydCAqIGZyb20gJy4vbGFtYmRhJ1xuZXhwb3J0IHsgQ29uZmlnLCBPcHRpb25zIH0gZnJvbSAnLi9jb25maWcnXG5leHBvcnQgeyBIb29rUG9zdEJ1aWxkUGF5bG9hZCwgSG9va0J1aWxkRmlsZVBheWxvYWQgfSBmcm9tICcuL2NyZWF0ZUVtaXR0ZXInXG5leHBvcnQgeyBjcmVhdGVQbHVnaW4sIFBsdWdpbkluaXQsIFBsdWdpbiwgUGx1Z2luSW50ZXJmYWNlIH0gZnJvbSAnLi9wbHVnaW5zJ1xuIiwgImltcG9ydCBjLCB7IEtsZXVyIH0gZnJvbSAna2xldXInXG5cbmltcG9ydCB7IEVudiB9IGZyb20gJy4vY29uc3RhbnRzJ1xuXG5leHBvcnQgZW51bSBMZXZlbHMge1xuICBEZWJ1ZyA9ICdkZWJ1ZycsXG4gIEluZm8gPSAnaW5mbycsXG4gIFdhcm4gPSAnd2FybicsXG4gIEVyciA9ICdlcnJvcicsXG59XG5cbmV4cG9ydCB0eXBlIE1lc3NhZ2UgPSB7XG4gIGxldmVsPzogTGV2ZWxzXG4gIGxhYmVsOiBzdHJpbmcgfCBudW1iZXJcbiAgbWVzc2FnZT86IHN0cmluZ1xuICBkdXJhdGlvbj86IHN0cmluZyB8IG51bWJlclxuICBlcnJvcj86IEVycm9yXG59XG5cbmxldCBsb2dzOiBhbnlbXSA9IFtdXG5cbmNvbnN0IGNvbG9ycyA9IHtcbiAgW0xldmVscy5EZWJ1Z106ICdtYWdlbnRhJyxcbiAgW0xldmVscy5JbmZvXTogJ2JsdWUnLFxuICBbTGV2ZWxzLldhcm5dOiAneWVsbG93JyxcbiAgW0xldmVscy5FcnJdOiAncmVkJyxcbn1cblxuZXhwb3J0IHsgYyBhcyBjb2xvcnMgfVxuXG5leHBvcnQgZnVuY3Rpb24gZ2V0TG9ncygpIHtcbiAgaWYgKCFwcm9jZXNzLmVudi5URVNUSU5HKSB7XG4gICAgdGhyb3cgbmV3IEVycm9yKCdJbnRlcm5hbCBtZXRob2Qgd2FzIGNhbGxlZCBvdXRzaWRlIHRlc3QgbW9kZScpXG4gIH1cblxuICByZXR1cm4gbG9nc1xufVxuXG5leHBvcnQgZnVuY3Rpb24gbG9nZ2VyKG1lc3NhZ2U6IE1lc3NhZ2UpIHtcbiAgaWYgKHByb2Nlc3MuZW52LlRFU1RJTkcpIHtcbiAgICBsb2dzLnB1c2gobWVzc2FnZSlcbiAgfSBlbHNlIHtcbiAgICBjb25zdCBkZWJ1ZyA9IHByb2Nlc3MuZW52LlBSRVNUQV9ERUJVR1xuICAgIGNvbnN0IGNvbnRleHQgPSBwcm9jZXNzLmVudi5QUkVTVEFfRU5WID09PSBFbnYuUFJPRFVDVElPTiA/ICdwcm9kJyA6ICdkZXYnXG5cbiAgICBpZiAoIWRlYnVnICYmIG1lc3NhZ2UubGV2ZWwgPT09IExldmVscy5EZWJ1ZykgcmV0dXJuXG5cbiAgICBjb25zb2xlLmxvZyhcbiAgICAgIFtcbiAgICAgICAgYy5ncmF5KGNvbnRleHQpLFxuICAgICAgICBjW2NvbG9yc1ttZXNzYWdlLmxldmVsIHx8ICdpbmZvJ10gYXMga2V5b2YgS2xldXJdKG1lc3NhZ2UubGFiZWwpLFxuICAgICAgICBtZXNzYWdlLm1lc3NhZ2UsXG4gICAgICAgIG1lc3NhZ2UuZHVyYXRpb24gPyBjLmdyYXkoJysnICsgbWVzc2FnZS5kdXJhdGlvbikgOiAnJyxcbiAgICAgICAgbWVzc2FnZS5lcnJvciA/IGBcXG5cXG4ke21lc3NhZ2UuZXJyb3Iuc3RhY2sgfHwgbWVzc2FnZS5lcnJvcn1cXG5cXG5gIDogJycsXG4gICAgICBdXG4gICAgICAgIC5maWx0ZXIoQm9vbGVhbilcbiAgICAgICAgLmpvaW4oJyAnKVxuICAgIClcbiAgfVxufVxuXG5leHBvcnQgZnVuY3Rpb24gZGVidWcobWVzc2FnZTogTWVzc2FnZSkge1xuICBsb2dnZXIoeyBsZXZlbDogTGV2ZWxzLkRlYnVnLCAuLi5tZXNzYWdlIH0pXG59XG5cbmV4cG9ydCBmdW5jdGlvbiBpbmZvKG1lc3NhZ2U6IE1lc3NhZ2UpIHtcbiAgbG9nZ2VyKHsgbGV2ZWw6IExldmVscy5JbmZvLCAuLi5tZXNzYWdlIH0pXG59XG5cbmV4cG9ydCBmdW5jdGlvbiB3YXJuKG1lc3NhZ2U6IE1lc3NhZ2UpIHtcbiAgbG9nZ2VyKHsgbGV2ZWw6IExldmVscy5XYXJuLCAuLi5tZXNzYWdlIH0pXG59XG5cbmV4cG9ydCBmdW5jdGlvbiBlcnJvcihtZXNzYWdlOiBNZXNzYWdlKSB7XG4gIGxvZ2dlcih7IGxldmVsOiBMZXZlbHMuRXJyLCAuLi5tZXNzYWdlIH0pXG59XG5cbmV4cG9ydCBmdW5jdGlvbiByYXcoLi4uYXJnczogYW55W10pIHtcbiAgaWYgKHByb2Nlc3MuZW52LlRFU1RJTkcpIHtcbiAgICBsb2dzLnB1c2goYXJncylcbiAgfSBlbHNlIHtcbiAgICBjb25zb2xlLmxvZyguLi5hcmdzKVxuICB9XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBuZXdsaW5lKCkge1xuICBpZiAocHJvY2Vzcy5lbnYuVEVTVElORykgcmV0dXJuXG4gIGNvbnNvbGUubG9nKCcnKVxufVxuIiwgImV4cG9ydCBjb25zdCBFbnYgPSB7XG4gIFBST0RVQ1RJT046ICdwcm9kdWN0aW9uJyxcbiAgREVWRUxPUE1FTlQ6ICdkZXZlbG9wbWVudCcsXG59XG4iLCAiaW1wb3J0IGZzIGZyb20gJ2ZzJ1xuaW1wb3J0IHBhdGggZnJvbSAncGF0aCdcbmltcG9ydCBnZXRQb3J0IGZyb20gJ2dldC1wb3J0J1xuXG5pbXBvcnQgKiBhcyBsb2dnZXIgZnJvbSAnLi9sb2cnXG5pbXBvcnQgeyBQcmVzdGFDTElEZXZPcHRpb25zLCBQcmVzdGFDTElCdWlsZE9wdGlvbnMgfSBmcm9tICcuL2NsaSdcbmltcG9ydCB7IFBsdWdpbiB9IGZyb20gJy4vcGx1Z2lucydcblxuZXhwb3J0IHR5cGUgT3B0aW9ucyA9IHtcbiAgZmlsZXM6IHN0cmluZ1tdXG4gIG91dHB1dDogc3RyaW5nXG4gIGFzc2V0czogc3RyaW5nXG4gIHBsdWdpbnM6IFBsdWdpbltdXG4gIHBvcnQ6IG51bWJlclxufVxuXG5leHBvcnQgdHlwZSBDb25maWcgPSBPcHRpb25zICYge1xuICBlbnY6IHN0cmluZ1xuICBzdGF0aWNPdXRwdXREaXI6IHN0cmluZ1xuICBmdW5jdGlvbnNPdXRwdXREaXI6IHN0cmluZ1xuICBmdW5jdGlvbnNNYW5pZmVzdDogc3RyaW5nXG59XG5cbmV4cG9ydCBjb25zdCBkZWZhdWx0Q29uZmlnRmlsZXBhdGggPSAncHJlc3RhLmNvbmZpZy5qcydcblxuZXhwb3J0IGZ1bmN0aW9uIGdldEF2YWlsYWJsZVBvcnQocHJlZmVycmVkOiBzdHJpbmcpIHtcbiAgcmV0dXJuIGdldFBvcnQoeyBwb3J0OiBwYXJzZUludChwcmVmZXJyZWQsIDEwKSB9KVxufVxuXG4vKipcbiAqIEZldGNoIGEgY29uZmlnIGZpbGUuIElmIG9uZSB3YXMgc3BlY2lmaWVkIGJ5IHRoZSB1c2VyLCBsZXQgdGhlbSBrbm93IGlmXG4gKiBhbnl0aGluZyBnb2VzIHdyb25nLiBPdXRzaWRlIHdhdGNoIG1vZGUsIHRoaXMgc2hvdWxkIGV4aXQoMSkgaWYgdGhlIHVzZXJcbiAqIHByb3ZpZGVkIGEgY29uZmlnIGFuZCB0aGVyZSB3YXMgYW4gZXJyb3JcbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGdldENvbmZpZ0ZpbGUoZmlsZXBhdGg/OiBzdHJpbmcsIHNob3VsZEV4aXQ6IGJvb2xlYW4gPSBmYWxzZSkge1xuICBjb25zdCBmcCA9IHBhdGgucmVzb2x2ZShmaWxlcGF0aCB8fCBkZWZhdWx0Q29uZmlnRmlsZXBhdGgpXG5cbiAgdHJ5IHtcbiAgICBkZWxldGUgcmVxdWlyZS5jYWNoZVtmcF1cbiAgICByZXR1cm4gcmVxdWlyZShmcClcbiAgfSBjYXRjaCAoZSkge1xuICAgIGNvbnN0IGV4aXN0cyA9IGZzLmV4aXN0c1N5bmMoZnApXG5cbiAgICAvLyBjb25maWcgZmlsZSBleGlzdHMsIHNob3VsZCBsb2cgZXJyb3IsIG90aGVyd2lzZSBpZ25vcmUgbWlzc2luZyBmaWxlXG4gICAgaWYgKGV4aXN0cykge1xuICAgICAgbG9nZ2VyLmVycm9yKHtcbiAgICAgICAgbGFiZWw6ICdlcnJvcicsXG4gICAgICAgIGVycm9yOiBlIGFzIEVycm9yLFxuICAgICAgfSlcblxuICAgICAgLy8gd2UncmUgbm90IGluIHdhdGNoIG1vZGUsIGV4aXQgYnVpbGRcbiAgICAgIGlmIChzaG91bGRFeGl0KSBwcm9jZXNzLmV4aXQoMSlcbiAgICB9XG5cbiAgICByZXR1cm4ge31cbiAgfVxufVxuXG5leHBvcnQgZnVuY3Rpb24gY3JlYXRlKFxuICBlbnY6IHN0cmluZyxcbiAgY2xpOiBQcmVzdGFDTElCdWlsZE9wdGlvbnMgfCBQcmVzdGFDTElEZXZPcHRpb25zLFxuICBmaWxlOiBQYXJ0aWFsPE9wdGlvbnM+LFxuICBjd2QgPSBwcm9jZXNzLmN3ZCgpXG4pOiBDb25maWcge1xuICBjb25zdCBjb25maWcgPSB7XG4gICAgZW52LFxuICAgIG91dHB1dDogJ2J1aWxkJyxcbiAgICBhc3NldHM6ICdwdWJsaWMnLFxuICAgIHBsdWdpbnM6IFtdLFxuICAgIHBvcnQ6IDQwMDAsXG4gICAgZmlsZXM6IFtdLCAvLyBUT0RPIHdoZXJlIGRvIHdlIHZhbGlkYXRlXG4gICAgLi4uZmlsZSxcbiAgfVxuXG4gIC8vIG92ZXJyaWRlIHdpdGggQ0xJXG4gIGlmIChjbGkuXy5sZW5ndGgpIGNvbmZpZy5maWxlcyA9IGNsaS5fXG4gIGlmIChjbGkub3V0cHV0KSBjb25maWcub3V0cHV0ID0gY2xpLm91dHB1dFxuICBpZiAoY2xpLmFzc2V0cykgY29uZmlnLmFzc2V0cyA9IGNsaS5hc3NldHNcbiAgaWYgKGNsaS5wb3J0KSBjb25maWcucG9ydCA9IGNsaS5wb3J0XG5cbiAgLy8gcmVzb2x2ZSBhYnNvbHV0ZSBwYXRoc1xuICBpZiAoY29uZmlnLmZpbGVzKSBjb25maWcuZmlsZXMgPSAoW10gYXMgc3RyaW5nW10pLmNvbmNhdChjb25maWcuZmlsZXMpLm1hcCgocCkgPT4gcGF0aC5yZXNvbHZlKGN3ZCwgcCkpXG4gIGlmIChjb25maWcub3V0cHV0KSBjb25maWcub3V0cHV0ID0gcGF0aC5yZXNvbHZlKGN3ZCwgY29uZmlnLm91dHB1dClcbiAgaWYgKGNvbmZpZy5hc3NldHMpIGNvbmZpZy5hc3NldHMgPSBwYXRoLnJlc29sdmUoY3dkLCBjb25maWcuYXNzZXRzKVxuXG4gIHJldHVybiB7XG4gICAgLi4uY29uZmlnLFxuICAgIHN0YXRpY091dHB1dERpcjogcGF0aC5qb2luKGNvbmZpZy5vdXRwdXQsICdzdGF0aWMnKSxcbiAgICBmdW5jdGlvbnNPdXRwdXREaXI6IHBhdGguam9pbihjb25maWcub3V0cHV0LCAnZnVuY3Rpb25zJyksXG4gICAgZnVuY3Rpb25zTWFuaWZlc3Q6IHBhdGguam9pbihjb25maWcub3V0cHV0LCAncm91dGVzLmpzb24nKSxcbiAgfVxufVxuIiwgImV4cG9ydCBlbnVtIEV2ZW50cyB7XG4gIFBvc3RCdWlsZCA9ICdwb3N0LWJ1aWxkJyxcbiAgQnVpbGRGaWxlID0gJ2J1aWxkLWZpbGUnLFxuICBCcm93c2VyUmVmcmVzaCA9ICdicm93c2VyLXJlZnJlc2gnLFxufVxuXG5leHBvcnQgdHlwZSBDYWxsYWJsZSA9ICguLi5hcmdzOiBhbnlbXSkgPT4gdm9pZFxuXG5leHBvcnQgdHlwZSBIb29rUG9zdEJ1aWxkUGF5bG9hZCA9IHtcbiAgb3V0cHV0OiBzdHJpbmdcbiAgc3RhdGljT3V0cHV0OiBzdHJpbmdcbiAgZnVuY3Rpb25zT3V0cHV0OiBzdHJpbmdcbiAgZnVuY3Rpb25zTWFuaWZlc3Q6IFJlY29yZDxzdHJpbmcsIHN0cmluZz5cbn1cblxuZXhwb3J0IHR5cGUgSG9va0J1aWxkRmlsZVBheWxvYWQgPSB7XG4gIGZpbGU6IHN0cmluZ1xufVxuXG5leHBvcnQgdHlwZSBEZXN0cm95SG9va0NhbGxiYWNrID0gKCkgPT4gdm9pZFxuXG5leHBvcnQgdHlwZSBIb29rcyA9IHtcbiAgZW1pdFBvc3RCdWlsZChwcm9wczogSG9va1Bvc3RCdWlsZFBheWxvYWQpOiB2b2lkXG4gIG9uUG9zdEJ1aWxkKGNiOiAocHJvcHM6IEhvb2tQb3N0QnVpbGRQYXlsb2FkKSA9PiB2b2lkKTogRGVzdHJveUhvb2tDYWxsYmFja1xuICBlbWl0QnVpbGRGaWxlKHByb3BzOiBIb29rQnVpbGRGaWxlUGF5bG9hZCk6IHZvaWRcbiAgb25CdWlsZEZpbGUoY2I6IChwcm9wczogSG9va0J1aWxkRmlsZVBheWxvYWQpID0+IHZvaWQpOiBEZXN0cm95SG9va0NhbGxiYWNrXG4gIGVtaXRCcm93c2VyUmVmcmVzaCgpOiB2b2lkXG4gIG9uQnJvd3NlclJlZnJlc2goY2I6ICgpID0+IHZvaWQpOiBEZXN0cm95SG9va0NhbGxiYWNrXG59XG5cbmV4cG9ydCBmdW5jdGlvbiBjcmVhdGVFbWl0dGVyKCkge1xuICBsZXQgZXZlbnRzOiB7IFtldmVudDogc3RyaW5nXTogQ2FsbGFibGVbXSB9ID0ge31cblxuICBmdW5jdGlvbiBlbWl0KGV2OiBzdHJpbmcsIC4uLmFyZ3M6IGFueVtdKTogdm9pZCB7XG4gICAgZXZlbnRzW2V2XSA/IGV2ZW50c1tldl0ubWFwKChmbjogQ2FsbGFibGUpID0+IGZuKC4uLmFyZ3MpKSA6IFtdXG4gIH1cblxuICBmdW5jdGlvbiBvbihldjogc3RyaW5nLCBmbjogKC4uLmFyZ3M6IGFueVtdKSA9PiB2b2lkKSB7XG4gICAgZXZlbnRzW2V2XSA9IGV2ZW50c1tldl0gPyBldmVudHNbZXZdLmNvbmNhdChmbikgOiBbZm5dXG4gICAgcmV0dXJuICgpID0+IGV2ZW50c1tldl0uc3BsaWNlKGV2ZW50c1tldl0uaW5kZXhPZihmbiksIDEpXG4gIH1cblxuICBmdW5jdGlvbiBjbGVhcigpIHtcbiAgICBldmVudHMgPSB7fVxuICB9XG5cbiAgZnVuY3Rpb24gbGlzdGVuZXJzKGV2OiBzdHJpbmcpIHtcbiAgICByZXR1cm4gZXZlbnRzW2V2XSB8fCBbXVxuICB9XG5cbiAgcmV0dXJuIHtcbiAgICBlbWl0LFxuICAgIG9uLFxuICAgIGNsZWFyLFxuICAgIGxpc3RlbmVycyxcbiAgfVxufVxuXG5leHBvcnQgZnVuY3Rpb24gY3JlYXRlSG9va3MoZW1pdHRlcjogUmV0dXJuVHlwZTx0eXBlb2YgY3JlYXRlRW1pdHRlcj4pOiBIb29rcyB7XG4gIHJldHVybiB7XG4gICAgZW1pdFBvc3RCdWlsZChwcm9wcykge1xuICAgICAgZW1pdHRlci5lbWl0KCdwb3N0QnVpbGQnLCBwcm9wcylcbiAgICB9LFxuICAgIG9uUG9zdEJ1aWxkKGNiKSB7XG4gICAgICByZXR1cm4gZW1pdHRlci5vbigncG9zdEJ1aWxkJywgY2IpXG4gICAgfSxcbiAgICBlbWl0QnVpbGRGaWxlKHByb3BzKSB7XG4gICAgICBlbWl0dGVyLmVtaXQoJ2J1aWxkRmlsZScsIHByb3BzKVxuICAgIH0sXG4gICAgb25CdWlsZEZpbGUoY2IpIHtcbiAgICAgIHJldHVybiBlbWl0dGVyLm9uKCdidWlsZEZpbGUnLCBjYilcbiAgICB9LFxuICAgIGVtaXRCcm93c2VyUmVmcmVzaCgpIHtcbiAgICAgIGVtaXR0ZXIuZW1pdCgnYnJvd3NlclJlZnJlc2gnKVxuICAgIH0sXG4gICAgb25Ccm93c2VyUmVmcmVzaChjYikge1xuICAgICAgcmV0dXJuIGVtaXR0ZXIub24oJ2Jyb3dzZXJSZWZyZXNoJywgY2IpXG4gICAgfSxcbiAgfVxufVxuIiwgImltcG9ydCAqIGFzIGxvZ2dlciBmcm9tICcuL2xvZydcbmltcG9ydCB7IEhvb2tzIH0gZnJvbSAnLi9jcmVhdGVFbWl0dGVyJ1xuaW1wb3J0IHsgQ29uZmlnIH0gZnJvbSAnLi9jb25maWcnXG5cbmV4cG9ydCB0eXBlIFBsdWdpbkludGVyZmFjZSA9IHtcbiAgY2xlYW51cD8oKTogdm9pZFxufVxuZXhwb3J0IHR5cGUgUGx1Z2luID0gKGNvbmZpZzogQ29uZmlnLCBob29rczogSG9va3MpID0+IFByb21pc2U8UGx1Z2luSW50ZXJmYWNlIHwgdm9pZD4gfCBQbHVnaW5JbnRlcmZhY2UgfCB2b2lkXG5leHBvcnQgdHlwZSBQbHVnaW5Jbml0ID0gKC4uLnByb3BzOiBhbnkpID0+IFBsdWdpblxuXG5leHBvcnQgZnVuY3Rpb24gY3JlYXRlUGx1Z2luKGluaXQ6IFBsdWdpbkluaXQpIHtcbiAgcmV0dXJuIGluaXRcbn1cblxuZXhwb3J0IGFzeW5jIGZ1bmN0aW9uIGluaXRQbHVnaW5zKHBsdWdpbnM6IFBsdWdpbltdLCBpbnN0YW5jZTogQ29uZmlnLCBob29rczogSG9va3MpIHtcbiAgY29uc3QgaW5zdGFudGlhdGVkID0gYXdhaXQgUHJvbWlzZS5hbGwoXG4gICAgcGx1Z2luc1xuICAgICAgLm1hcCgocCkgPT4ge1xuICAgICAgICB0cnkge1xuICAgICAgICAgIHJldHVybiBwKGluc3RhbmNlLCBob29rcylcbiAgICAgICAgfSBjYXRjaCAoZSkge1xuICAgICAgICAgIGxvZ2dlci5lcnJvcih7XG4gICAgICAgICAgICBsYWJlbDogJ2Vycm9yJyxcbiAgICAgICAgICAgIGVycm9yOiBlIGFzIEVycm9yLFxuICAgICAgICAgIH0pXG4gICAgICAgIH1cbiAgICAgIH0pXG4gICAgICAuZmlsdGVyKEJvb2xlYW4pIGFzIFBsdWdpbkludGVyZmFjZVtdXG4gIClcblxuICByZXR1cm4ge1xuICAgIGFzeW5jIGNsZWFudXAoKSB7XG4gICAgICByZXR1cm4gUHJvbWlzZS5hbGwoaW5zdGFudGlhdGVkLm1hcCgocCkgPT4gcCAmJiBwLmNsZWFudXAgJiYgcC5jbGVhbnVwKCkpKVxuICAgIH0sXG4gIH1cbn1cbiJdLAogICJtYXBwaW5ncyI6ICJrMkJBQUEsdURDQUEseUpBQXlCLG9CQ0FsQixHQUFNLEdBQU0sQ0FDakIsV0FBWSxhQUNaLFlBQWEsZURFUixHQUFLLEdBQUwsVUFBSyxFQUFMLENBQ0wsUUFBUSxRQUNSLE9BQU8sT0FDUCxPQUFPLE9BQ1AsTUFBTSxVQUpJLFdBZVosR0FBSSxHQUFjLEdBRVosRUFBUyxFQUNaLEVBQU8sT0FBUSxXQUNmLEVBQU8sTUFBTyxRQUNkLEVBQU8sTUFBTyxVQUNkLEVBQU8sS0FBTSxPQUtULFlBQW1CLENBQ3hCLEdBQUksQ0FBQyxRQUFRLElBQUksUUFDZixLQUFNLElBQUksT0FBTSxnREFHbEIsTUFBTyxHQUdGLFdBQWdCLEVBQWtCLENBQ3ZDLEdBQUksUUFBUSxJQUFJLFFBQ2QsRUFBSyxLQUFLLE9BQ0wsQ0FDTCxHQUFNLEdBQVEsUUFBUSxJQUFJLGFBQ3BCLEVBQVUsUUFBUSxJQUFJLGFBQWUsRUFBSSxXQUFhLE9BQVMsTUFFckUsR0FBSSxDQUFDLEdBQVMsRUFBUSxRQUFVLEVBQU8sTUFBTyxPQUU5QyxRQUFRLElBQ04sQ0FDRSxVQUFFLEtBQUssR0FDUCxVQUFFLEVBQU8sRUFBUSxPQUFTLFNBQXdCLEVBQVEsT0FDMUQsRUFBUSxRQUNSLEVBQVEsU0FBVyxVQUFFLEtBQUssSUFBTSxFQUFRLFVBQVksR0FDcEQsRUFBUSxNQUFRO0FBQUE7QUFBQSxFQUFPLEVBQVEsTUFBTSxPQUFTLEVBQVE7QUFBQTtBQUFBLEVBQWMsSUFFbkUsT0FBTyxTQUNQLEtBQUssT0FLUCxXQUFlLEVBQWtCLENBQ3RDLEVBQU8sR0FBRSxNQUFPLEVBQU8sT0FBVSxJQUc1QixXQUFjLEVBQWtCLENBQ3JDLEVBQU8sR0FBRSxNQUFPLEVBQU8sTUFBUyxJQUczQixXQUFjLEVBQWtCLENBQ3JDLEVBQU8sR0FBRSxNQUFPLEVBQU8sTUFBUyxJQUczQixXQUFlLEVBQWtCLENBQ3RDLEVBQU8sR0FBRSxNQUFPLEVBQU8sS0FBUSxJQUcxQixjQUFnQixFQUFhLENBQ2xDLEFBQUksUUFBUSxJQUFJLFFBQ2QsRUFBSyxLQUFLLEdBRVYsUUFBUSxJQUFJLEdBQUcsR0FJWixZQUFtQixDQUN4QixBQUFJLFFBQVEsSUFBSSxTQUNoQixRQUFRLElBQUksSUV2RmQsTUFBZSxpQkFDZixFQUFpQixtQkFDakIsRUFBb0IsdUJDRmIsR0FBSyxHQUFMLFVBQUssRUFBTCxDQUNMLFlBQVksYUFDWixZQUFZLGFBQ1osaUJBQWlCLG9CQUhQLFdDVUwsV0FBc0IsRUFBa0IsQ0FDN0MsTUFBTyxHTE5GLEdBQU0sR0FBUyIsCiAgIm5hbWVzIjogW10KfQo=