From 73fc119bddc6b9322fe39c770355adf7c97492e6 Mon Sep 17 00:00:00 2001 From: Steve Matney Date: Tue, 1 Jul 2014 16:56:34 -0600 Subject: [PATCH] Pre-building the proper files so build doesn't early-exit. --- lib/config.js | 8 +++++--- lib/fubu-import.js | 7 ++++--- lib/index.js | 8 ++++++-- lib/scaffolding.js | 19 ++++++++++++------- lib/util.js | 2 +- src/config.coffee | 3 ++- src/fubu-import.coffee | 5 +++-- src/index.coffee | 5 ++++- src/scaffolding.coffee | 11 +++++++---- 9 files changed, 44 insertions(+), 24 deletions(-) diff --git a/lib/config.js b/lib/config.js index 78cdf8c..5e219f8 100644 --- a/lib/config.js +++ b/lib/config.js @@ -1,10 +1,12 @@ "use strict"; -var path, _; +var fs, path, _; _ = require("lodash"); path = require('path'); +fs = require('fs'); + exports.defaults = function() { return { fubumvc: { @@ -30,7 +32,7 @@ exports.validate = function(config, validators) { return errors; } excludePaths = fubumvc.excludePaths, conventions = fubumvc.conventions, usePolling = fubumvc.usePolling, interval = fubumvc.interval, binaryInterval = fubumvc.binaryInterval, baseDir = fubumvc.baseDir; - if (!((baseDir == null) || ((baseDir != null) && path.existsSync(baseDir)))) { + if (!((baseDir == null) || ((baseDir != null) && fs.existsSync(baseDir)))) { errors.push("fubumvc.baseDir"); return errors; } @@ -81,4 +83,4 @@ exports.validate = function(config, validators) { return errors; }; -//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiL1VzZXJzL3NtaXRobS9kZXYvbWltb3NhLWZ1YnVtdmMvbGliL2NvbmZpZy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi9Vc2Vycy9zbWl0aG0vZGV2L21pbW9zYS1mdWJ1bXZjL3NyYy9jb25maWcuY29mZmVlIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLFlBQUEsQ0FBQTtBQUFBLElBQUEsT0FBQTs7QUFBQSxDQUVBLEdBQUksT0FBQSxDQUFRLFFBQVIsQ0FGSixDQUFBOztBQUFBLElBR0EsR0FBTyxPQUFBLENBQVEsTUFBUixDQUhQLENBQUE7O0FBQUEsT0FLTyxDQUFDLFFBQVIsR0FBbUIsU0FBQSxHQUFBO1NBQ2pCO0FBQUEsSUFBQSxPQUFBLEVBQ0U7QUFBQSxNQUFBLFVBQUEsRUFBWSxJQUFaO0FBQUEsTUFDQSxRQUFBLEVBQVUsR0FEVjtBQUFBLE1BRUEsY0FBQSxFQUFnQixJQUZoQjtBQUFBLE1BR0EsWUFBQSxFQUFjLENBQUMsS0FBRCxFQUFRLEtBQVIsRUFBZSxLQUFmLENBSGQ7QUFBQSxNQUlBLFdBQUEsRUFBYSxFQUpiO0tBREY7SUFEaUI7QUFBQSxDQUxuQixDQUFBOztBQUFBLE9BYU8sQ0FBQyxXQUFSLEdBQXNCLFNBQUEsR0FBQTtTQUNwQiw4WkFEb0I7QUFBQSxDQWJ0QixDQUFBOztBQUFBLE9BaUNPLENBQUMsUUFBUixHQUFtQixTQUFDLE1BQUQsRUFBUyxVQUFULEdBQUE7QUFDakIsTUFBQSxtS0FBQTtBQUFBLEVBQUEsTUFBQSxHQUFTLEVBQVQsQ0FBQTtBQUFBLEVBQ0MsVUFBVyxPQUFYLE9BREQsQ0FBQTtBQUVBLEVBQUEsSUFBQSxDQUFBLENBQU8saUJBQUEsSUFBYSxDQUFDLENBQUMsUUFBRixDQUFXLE9BQVgsQ0FBcEIsQ0FBQTtBQUNFLElBQUEsTUFBTSxDQUFDLElBQVAsQ0FBWSxnQkFBWixDQUFBLENBQUE7QUFDQSxXQUFPLE1BQVAsQ0FGRjtHQUZBO0FBQUEsRUFNQyx1QkFBQSxZQUFELEVBQWUsc0JB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Q0FoRGQsQ0FBQTtBQUFBLEVBa0RBLE1BQU0sQ0FBQyxPQUFPLENBQUMsWUFBZixHQUE4QixZQUFZLENBQUMsTUFBYixDQUFvQixXQUFwQixDQWxEOUIsQ0FBQTtBQUFBLEVBbURBLE1BQU0sQ0FBQyxPQUFPLENBQUMsU0FBZixHQUEyQixTQW5EM0IsQ0FBQTtBQUFBLEVBb0RBLE1BQU0sQ0FBQyxPQUFPLENBQUMsV0FBZixHQUE2QixXQXBEN0IsQ0FBQTtBQUFBLEVBcURBLE1BQU0sQ0FBQyxPQUFPLENBQUMsT0FBZixHQUF5QixNQUFNLENBQUMsT0FyRGhDLENBQUE7U0F1REEsT0F4RGlCO0FBQUEsQ0FqQ25CLENBQUEiLCJzb3VyY2VzQ29udGVudCI6WyJcInVzZSBzdHJpY3RcIlxuXG5fID0gcmVxdWlyZSBcImxvZGFzaFwiXG5wYXRoID0gcmVxdWlyZSAncGF0aCdcblxuZXhwb3J0cy5kZWZhdWx0cyA9IC0+XG4gIGZ1YnVtdmM6XG4gICAgdXNlUG9sbGluZzogdHJ1ZVxuICAgIGludGVydmFsOiA1MDBcbiAgICBiaW5hcnlJbnRlcnZhbDogMTAwMFxuICAgIGV4Y2x1ZGVQYXRoczogW1wiYmluXCIsIFwib2JqXCIsIC9eXFwuL11cbiAgICBjb252ZW50aW9uczogW11cblxuZXhwb3J0cy5wbGFjZWhvbGRlciA9IC0+XG4gIFwiXCJcIlxuICBcXHRcblxuICAjIGZ1YnVtdmM6XG4gICAgIyB1c2VQb2xsaW5nOiB0cnVlXG4gICAgIyBpbnRlcnZhbDogNTAwXG4gICAgIyBiaW5hcnlJbnRlcnZhbDogMTAwMFxuICAgICMgZXhjbHVkZVBhdGhzOiBbXCJiaW5cIiwgXCJvYmpcIiwgL15cXC4vXVxuICAgICMgY29udmVudGlvbnM6IFtcbiAgICAgICMgcHJvdmlkZSAwIG9yIG1vcmUgY29udmVudGlvbnNcbiAgICAgICMgeyBcbiAgICAgICAgIyBtYXRjaDogKGZpbGUsIGV4dCwgbG9nKSAtPlxuICAgICAgICAgICMgdHJ1ZSAjZmlsZW5hbWUgYW5kIGV4dGVuc2lvbiwgcmV0dXJuIHRydWUvZmFsc2UsXG4gICAgICAgICMgdHJhbnNmb3JtOiAoZmlsZSwgcGF0aCwgbG9nKSAtPlxuICAgICAgICAgICMgZmlsZSAjZmlsZW5hbWUgYW5kIHBhdGggbW9kdWxlIHRvIGRvIHBhdGguam9pbiwgZXRjXG4gICAgICAjIH1cbiAgICAjIF1cbiAgXCJcIlwiXG5cbmV4cG9ydHMudmFsaWRhdGUgPSAoY29uZmlnLCB2YWxpZGF0b3JzKSAtPlxuICBlcnJvcnMgPSBbXVxuICB7ZnVidW12Y30gPSBjb25maWdcbiAgdW5sZXNzIGZ1YnVtdmM/IGFuZCBfLmlzT2JqZWN0IGZ1YnVtdmNcbiAgICBlcnJvcnMucHVzaCBcImZ1YnVtdmMgY29uZmlnXCJcbiAgICByZXR1cm4gZXJyb3JzXG5cbiAge2V4Y2x1ZGVQYXRocywgY29udmVudGlvbnMsIHVzZVBvbGxpbmcsIGludGVydmFsLCBiaW5hcnlJbnRlcnZhbCwgYmFzZURpcn0gPSBmdWJ1bXZjXG5cbiAgdW5sZXNzICFiYXNlRGlyPyBvciAoYmFzZURpcj8gYW5kIHBhdGguZXhpc3RzU3luYyBiYXNlRGlyKVxuICAgIGVycm9ycy5wdXNoIFwiZnVidW12Yy5iYXNlRGlyXCJcbiAgICByZXR1cm4gZXJyb3JzXG5cbiAgdW5sZXNzIHVzZVBvbGxpbmc/IGFuZCBfLmlzQm9vbGVhbiB1c2VQb2xsaW5nXG4gICAgZXJyb3JzLnB1c2ggXCJmdWJ1bXZjLnVzZVBvbGxpbmdcIlxuICAgIHJldHVybiBlcnJvcnNcblxuICB1bmxlc3MgaW50ZXJ2YWw/IGFuZCBfLmlzTnVtYmVyIGludGVydmFsXG4gICAgZXJyb3JzLnB1c2ggXCJmdWJ1bXZjLmludGVydmFsXCJcbiAgICByZXR1cm4gZXJyb3JzXG5cbiAgdW5sZXNzIGJpbmFyeUludGVydmFsPyBhbmQgXy5pc051bWJlciBiaW5hcnlJbnRlcnZhbFxuICAgIGVycm9ycy5wdXNoIFwiZnVidW12Yy5iaW5hcnlJbnRlcnZhbFwiXG4gICAgcmV0dXJuIGVycm9yc1xuXG4gIHVubGVzcyBleGNsdWRlUGF0aHM/IGFuZCBfLmlzQXJyYXkgZXhjbHVkZVBhdGhzXG4gICAgZXJyb3JzLnB1c2ggXCJmdWJ1bXZjLmV4Y2x1ZGVQYXRoc1wiXG4gICAgcmV0dXJuIGVycm9yc1xuXG4gIGV4Y2x1ZGVQYXRoc09rID0gXy5hbGwgZXhjbHVkZVBhdGhzLCAoaXRlbSkgLT5cbiAgICBfLmlzU3RyaW5nKGl0ZW0pIG9yIF8uaXNSZWdFeHAoaXRlbSlcblxuICB1bmxlc3MgZXhjbHVkZVBhdGhzT2tcbiAgICBlcnJvcnMucHVzaCBcImZ1YnVtdmMuZXhjbHVkZVBhdGhzIGVudHJpZXMgbXVzdCBiZSBlaXRoZXIgc3RyaW5ncyBvciByZWdleGVzXCJcbiAgICByZXR1cm4gZXJyb3JzXG5cbiAgdW5sZXNzIGNvbnZlbnRpb25zPyBhbmQgXy5pc0FycmF5IGNvbnZlbnRpb25zXG4gICAgZXJyb3JzLnB1c2ggXCJmdWJ1bXZjLmNvbnZlbnRpb25zXCJcbiAgICByZXR1cm4gZXJyb3JzXG5cbiAgY29udmVudGlvbnNPayA9IF8uYWxsIGNvbnZlbnRpb25zLCAoaXRlbSkgLT5cbiAgICBfLmlzT2JqZWN0KGl0ZW0pIGFuZCBfLmFsbCBbXCJtYXRjaFwiLCBcInRyYW5zZm9ybVwiXSwgKGZ1bmMpIC0+IF8uaXNGdW5jdGlvbiBpdGVtW2Z1bmNdXG5cbiAgdW5sZXNzIGNvbnZlbnRpb25zT2tcbiAgICBlcnJvcnMucHVzaCBcImZ1YnVtdmMuY29udmVudGlvbnMgZW50cmllcyBtdXN0IGJlIG9iamVjdHMgd2l0aCBtYXRjaDogKGZpbGUsIGV4dCkgLT4gYW5kIHRyYW5zZm9ybTogKGZpbGUsIHBhdGgpIC0+XCJcbiAgICByZXR1cm4gZXJyb3JzXG5cbiAgI2F1dG8taW5jbHVkZSB0aGUgc291cmNlRGlyIGFuZCBjb21waWxlZERpciBpbnRvIGV4Y2x1ZGVQYXRocyBsaXN0XG4gIHt3YXRjaDoge3NvdXJjZURpciwgY29tcGlsZWREaXJ9fSA9IGNvbmZpZ1xuICBpZ25vcmVQYXRocyA9IF8ubWFwIFtzb3VyY2VEaXIsIGNvbXBpbGVkRGlyLCAnbm9kZV9tb2R1bGVzJ10sIChwKSAtPiBwYXRoLmJhc2VuYW1lIHBcblxuICBjb25maWcuZnVidW12Yy5leGNsdWRlUGF0aHMgPSBleGNsdWRlUGF0aHMuY29uY2F0IGlnbm9yZVBhdGhzXG4gIGNvbmZpZy5mdWJ1bXZjLnNvdXJjZURpciA9IHNvdXJjZURpclxuICBjb25maWcuZnVidW12Yy5jb21waWxlZERpciA9IGNvbXBpbGVkRGlyXG4gIGNvbmZpZy5mdWJ1bXZjLmlzQnVpbGQgPSBjb25maWcuaXNCdWlsZFxuXG4gIGVycm9yc1xuIl19 +//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiL21udC9SZXNvdXJjZXMvUHJvamVjdHMvbWltb3NhLWZ1YnVtdmMvbGliL2NvbmZpZy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi9tbnQvUmVzb3VyY2VzL1Byb2plY3RzL21pbW9zYS1mdWJ1bXZjL3NyYy9jb25maWcuY29mZmVlIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLFlBQUEsQ0FBQTtBQUFBLElBQUEsV0FBQTs7QUFBQSxDQUVBLEdBQUksT0FBQSxDQUFRLFFBQVIsQ0FGSixDQUFBOztBQUFBLElBR0EsR0FBTyxPQUFBLENBQVEsTUFBUixDQUhQLENBQUE7O0FBQUEsRUFJQSxHQUFLLE9BQUEsQ0FBUSxJQUFSLENBSkwsQ0FBQTs7QUFBQSxPQU1PLENBQUMsUUFBUixHQUFtQixTQUFBLEdBQUE7U0FDakI7QUFBQSxJQUFBLE9BQUEsRUFDRTtBQUFBLE1BQUEsVUFBQSxFQUFZLElBQVo7QUFBQSxNQUNBLFFBQUEsRUFBVSxHQURWO0FBQUEsTUFFQSxjQUFBLEVBQWdCLElBRmhCO0FBQUEsTUFHQSxZQUFBLEVBQWMsQ0FBQyxLQUFELEVBQVEsS0FBUixFQUFlLEtBQWYsQ0FIZDtBQUFBLE1BSUEsV0FBQSxFQUFhLEVBSmI7S0FERjtJQURpQjtBQUFBLENBTm5CLENBQUE7O0FBQUEsT0FjTyxDQUFDLFdBQVIsR0FBc0IsU0FBQSxHQUFBO1NBQ3BCLDhaQURvQjtBQUFBLENBZHRCLENBQUE7O0FBQUEsT0FrQ08sQ0FBQyxRQUFSLEdBQW1CLFNBQUMsTUFBRCxFQUFTLFVBQVQsR0FBQTtBQUNqQixNQUFBLG1LQUFBO0FBQUEsRUFBQSxNQUFBLEdBQVMsRUFBVCxDQUFBO0FBQUEsRUFDQyxVQUFXLE9BQVgsT0FERCxDQUFBO0FBRUEsRUFBQSxJQUFBLENBQUEsQ0FBTyxpQkFBQSxJQUFhLENBQUMsQ0FBQyxRQUFGLENBQVcsT0FBWCxDQUFwQixDQUFBO0FBQ0UsSUFBQSxNQUFNLENBQUMsSUFBUCxDQUFZLGdCQUFaLENBQUEsQ0FBQTtB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R0FBQTtXQUFPLElBQUksQ0FBQyxRQUFMLENBQWMsQ0FBZCxFQUFQO0VBQUEsQ0FBaEQsQ0FoRGQsQ0FBQTtBQUFBLEVBa0RBLE1BQU0sQ0FBQyxPQUFPLENBQUMsWUFBZixHQUE4QixZQUFZLENBQUMsTUFBYixDQUFvQixXQUFwQixDQWxEOUIsQ0FBQTtBQUFBLEVBbURBLE1BQU0sQ0FBQyxPQUFPLENBQUMsU0FBZixHQUEyQixTQW5EM0IsQ0FBQTtBQUFBLEVBb0RBLE1BQU0sQ0FBQyxPQUFPLENBQUMsV0FBZixHQUE2QixXQXBEN0IsQ0FBQTtBQUFBLEVBcURBLE1BQU0sQ0FBQyxPQUFPLENBQUMsT0FBZixHQUF5QixNQUFNLENBQUMsT0FyRGhDLENBQUE7U0F1REEsT0F4RGlCO0FBQUEsQ0FsQ25CLENBQUEiLCJzb3VyY2VzQ29udGVudCI6WyJcInVzZSBzdHJpY3RcIlxuXG5fID0gcmVxdWlyZSBcImxvZGFzaFwiXG5wYXRoID0gcmVxdWlyZSAncGF0aCdcbmZzID0gcmVxdWlyZSAnZnMnXG5cbmV4cG9ydHMuZGVmYXVsdHMgPSAtPlxuICBmdWJ1bXZjOlxuICAgIHVzZVBvbGxpbmc6IHRydWVcbiAgICBpbnRlcnZhbDogNTAwXG4gICAgYmluYXJ5SW50ZXJ2YWw6IDEwMDBcbiAgICBleGNsdWRlUGF0aHM6IFtcImJpblwiLCBcIm9ialwiLCAvXlxcLi9dXG4gICAgY29udmVudGlvbnM6IFtdXG5cbmV4cG9ydHMucGxhY2Vob2xkZXIgPSAtPlxuICBcIlwiXCJcbiAgXFx0XG5cbiAgIyBmdWJ1bXZjOlxuICAgICMgdXNlUG9sbGluZzogdHJ1ZVxuICAgICMgaW50ZXJ2YWw6IDUwMFxuICAgICMgYmluYXJ5SW50ZXJ2YWw6IDEwMDBcbiAgICAjIGV4Y2x1ZGVQYXRoczogW1wiYmluXCIsIFwib2JqXCIsIC9eXFwuL11cbiAgICAjIGNvbnZlbnRpb25zOiBbXG4gICAgICAjIHByb3ZpZGUgMCBvciBtb3JlIGNvbnZlbnRpb25zXG4gICAgICAjIHsgXG4gICAgICAgICMgbWF0Y2g6IChmaWxlLCBleHQsIGxvZykgLT5cbiAgICAgICAgICAjIHRydWUgI2ZpbGVuYW1lIGFuZCBleHRlbnNpb24sIHJldHVybiB0cnVlL2ZhbHNlLFxuICAgICAgICAjIHRyYW5zZm9ybTogKGZpbGUsIHBhdGgsIGxvZykgLT5cbiAgICAgICAgICAjIGZpbGUgI2ZpbGVuYW1lIGFuZCBwYXRoIG1vZHVsZSB0byBkbyBwYXRoLmpvaW4sIGV0Y1xuICAgICAgIyB9XG4gICAgIyBdXG4gIFwiXCJcIlxuXG5leHBvcnRzLnZhbGlkYXRlID0gKGNvbmZpZywgdmFsaWRhdG9ycykgLT5cbiAgZXJyb3JzID0gW11cbiAge2Z1YnVtdmN9ID0gY29uZmlnXG4gIHVubGVzcyBmdWJ1bXZjPyBhbmQgXy5pc09iamVjdCBmdWJ1bXZjXG4gICAgZXJyb3JzLnB1c2ggXCJmdWJ1bXZjIGNvbmZpZ1wiXG4gICAgcmV0dXJuIGVycm9yc1xuXG4gIHtleGNsdWRlUGF0aHMsIGNvbnZlbnRpb25zLCB1c2VQb2xsaW5nLCBpbnRlcnZhbCwgYmluYXJ5SW50ZXJ2YWwsIGJhc2VEaXJ9ID0gZnVidW12Y1xuXG4gIHVubGVzcyAhYmFzZURpcj8gb3IgKGJhc2VEaXI/IGFuZCBmcy5leGlzdHNTeW5jIGJhc2VEaXIpXG4gICAgZXJyb3JzLnB1c2ggXCJmdWJ1bXZjLmJhc2VEaXJcIlxuICAgIHJldHVybiBlcnJvcnNcblxuICB1bmxlc3MgdXNlUG9sbGluZz8gYW5kIF8uaXNCb29sZWFuIHVzZVBvbGxpbmdcbiAgICBlcnJvcnMucHVzaCBcImZ1YnVtdmMudXNlUG9sbGluZ1wiXG4gICAgcmV0dXJuIGVycm9yc1xuXG4gIHVubGVzcyBpbnRlcnZhbD8gYW5kIF8uaXNOdW1iZXIgaW50ZXJ2YWxcbiAgICBlcnJvcnMucHVzaCBcImZ1YnVtdmMuaW50ZXJ2YWxcIlxuICAgIHJldHVybiBlcnJvcnNcblxuICB1bmxlc3MgYmluYXJ5SW50ZXJ2YWw/IGFuZCBfLmlzTnVtYmVyIGJpbmFyeUludGVydmFsXG4gICAgZXJyb3JzLnB1c2ggXCJmdWJ1bXZjLmJpbmFyeUludGVydmFsXCJcbiAgICByZXR1cm4gZXJyb3JzXG5cbiAgdW5sZXNzIGV4Y2x1ZGVQYXRocz8gYW5kIF8uaXNBcnJheSBleGNsdWRlUGF0aHNcbiAgICBlcnJvcnMucHVzaCBcImZ1YnVtdmMuZXhjbHVkZVBhdGhzXCJcbiAgICByZXR1cm4gZXJyb3JzXG5cbiAgZXhjbHVkZVBhdGhzT2sgPSBfLmFsbCBleGNsdWRlUGF0aHMsIChpdGVtKSAtPlxuICAgIF8uaXNTdHJpbmcoaXRlbSkgb3IgXy5pc1JlZ0V4cChpdGVtKVxuXG4gIHVubGVzcyBleGNsdWRlUGF0aHNPa1xuICAgIGVycm9ycy5wdXNoIFwiZnVidW12Yy5leGNsdWRlUGF0aHMgZW50cmllcyBtdXN0IGJlIGVpdGhlciBzdHJpbmdzIG9yIHJlZ2V4ZXNcIlxuICAgIHJldHVybiBlcnJvcnNcblxuICB1bmxlc3MgY29udmVudGlvbnM/IGFuZCBfLmlzQXJyYXkgY29udmVudGlvbnNcbiAgICBlcnJvcnMucHVzaCBcImZ1YnVtdmMuY29udmVudGlvbnNcIlxuICAgIHJldHVybiBlcnJvcnNcblxuICBjb252ZW50aW9uc09rID0gXy5hbGwgY29udmVudGlvbnMsIChpdGVtKSAtPlxuICAgIF8uaXNPYmplY3QoaXRlbSkgYW5kIF8uYWxsIFtcIm1hdGNoXCIsIFwidHJhbnNmb3JtXCJdLCAoZnVuYykgLT4gXy5pc0Z1bmN0aW9uIGl0ZW1bZnVuY11cblxuICB1bmxlc3MgY29udmVudGlvbnNPa1xuICAgIGVycm9ycy5wdXNoIFwiZnVidW12Yy5jb252ZW50aW9ucyBlbnRyaWVzIG11c3QgYmUgb2JqZWN0cyB3aXRoIG1hdGNoOiAoZmlsZSwgZXh0KSAtPiBhbmQgdHJhbnNmb3JtOiAoZmlsZSwgcGF0aCkgLT5cIlxuICAgIHJldHVybiBlcnJvcnNcblxuICAjYXV0by1pbmNsdWRlIHRoZSBzb3VyY2VEaXIgYW5kIGNvbXBpbGVkRGlyIGludG8gZXhjbHVkZVBhdGhzIGxpc3RcbiAge3dhdGNoOiB7c291cmNlRGlyLCBjb21waWxlZERpcn19ID0gY29uZmlnXG4gIGlnbm9yZVBhdGhzID0gXy5tYXAgW3NvdXJjZURpciwgY29tcGlsZWREaXIsICdub2RlX21vZHVsZXMnXSwgKHApIC0+IHBhdGguYmFzZW5hbWUgcFxuXG4gIGNvbmZpZy5mdWJ1bXZjLmV4Y2x1ZGVQYXRocyA9IGV4Y2x1ZGVQYXRocy5jb25jYXQgaWdub3JlUGF0aHNcbiAgY29uZmlnLmZ1YnVtdmMuc291cmNlRGlyID0gc291cmNlRGlyXG4gIGNvbmZpZy5mdWJ1bXZjLmNvbXBpbGVkRGlyID0gY29tcGlsZWREaXJcbiAgY29uZmlnLmZ1YnVtdmMuaXNCdWlsZCA9IGNvbmZpZy5pc0J1aWxkXG5cbiAgZXJyb3JzXG4iXX0= diff --git a/lib/fubu-import.js b/lib/fubu-import.js index 9f70f35..4a9cbe9 100644 --- a/lib/fubu-import.js +++ b/lib/fubu-import.js @@ -353,12 +353,13 @@ cleanAssets = function(mimosaConfig, options, next) { conventions: conventions, baseDir: baseDir }; + setWorkingDir(baseDir); filesFor = function(target) { var files, outputFiles; log("debug", "finding files for: " + target + " with extensions: " + extensions + " and excludePaths: " + excludePaths); - files = findSourceFiles(target, extensions, excludePaths); + files = findSourceFiles(target, extensions, excludePaths, baseDir); outputFiles = _.map(files, function(f) { - return transformPath(f, target, options, mimosaConfig); + return transformPath(f, target, options); }); return [target, files, outputFiles]; }; @@ -419,4 +420,4 @@ module.exports = { cleanAssets: cleanAssets }; -//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiL1VzZXJzL3NtaXRobS9kZXYvbWltb3NhLWZ1YnVtdmMvbGliL2Z1YnUtaW1wb3J0LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiL1VzZXJzL3NtaXRobS9kZXYvbWltb3NhLWZ1YnVtdmMvc3JjL2Z1YnUtaW1wb3J0LmNvZmZlZSJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxZQUFBLENBQUE7QUFBQSxJQUFBLDZhQUFBOztBQUFBLE9BRWtCLE9BQUEsQ0FBUSxRQUFSLENBQWxCLEVBQUMsV0FBQSxHQUFELEVBQU0sZ0JBQUEsUUFGTixDQUFBOztBQUFBLEtBR0EsR0FBUSxPQUFBLENBQVEsWUFBUixDQUFxQixDQUFDLEdBSDlCLENBQUE7O0FBQUEsRUFJQSxHQUFLLE9BQUEsQ0FBUSxJQUFSLENBSkwsQ0FBQTs7QUFBQSxJQUtBLEdBQU8sT0FBQSxDQUFRLE1BQVIsQ0FMUCxDQUFBOztBQUFBLEtBTUEsR0FBUSxPQUFBLENBQVEsVUFBUixDQU5SLENBQUE7O0FBQUEsTUFPQSxHQUFTLE9BQUEsQ0FBUSxRQUFSLENBUFQsQ0FBQTs7QUFBQSxDQVFBLEdBQUksT0FBQSxDQUFRLFFBQVIsQ0FSSixDQUFBOztBQUFBLFdBU0EsR0FBYyxPQUFBLENBQVEsUUFBUixDQUFpQixDQUFDLFdBVGhDLENBQUE7O0FBQUEsVUFVQSxHQUFhLE9BQU8sQ0FBQyxHQUFSLENBQUEsQ0FWYixDQUFBOztBQUFBLEVBV0EsR0FBSyxPQUFBLENBQVEsSUFBUixDQVhMLENBQUE7O0FBQUEsZUFhQSxHQUFrQixTQUFDLElBQUQsRUFBTyxVQUFQLEVBQW1CLFFBQW5CLEVBQTZCLE9BQTdCLEdBQUE7U0FDaEIsTUFBTSxDQUFDLG9CQUFQLENBQTRCLElBQTVCLENBQ0UsQ0FBQyxNQURILENBQ1UsU0FBQyxDQUFELEdBQUE7QUFDTixRQUFBLGdDQUFBO0FBQUEsSUFBQSxZQUFBLEdBQWUsSUFBSSxDQUFDLElBQUwsQ0FBVSxJQUFWLEVBQWdCLENBQWhCLENBQWYsQ0FBQTtB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O0dBQUEsTUFBQTtXQVFFLEVBQUEsQ0FBQSxFQVJGO0dBVk07QUFBQSxDQWhSUixDQUFBOztBQUFBLE1Bb1NNLENBQUMsT0FBUCxHQUFpQjtBQUFBLEVBQUMsY0FBQSxZQUFEO0FBQUEsRUFBZSxhQUFBLFdBQWY7Q0FwU2pCLENBQUEiLCJzb3VyY2VzQ29udGVudCI6WyJcInVzZSBzdHJpY3RcIlxuXG57bG9nLCBwcmludE9ian0gPSByZXF1aXJlICcuL3V0aWwnXG5jb2xvciA9IHJlcXVpcmUoJ2Fuc2ktY29sb3InKS5zZXRcbmZzID0gcmVxdWlyZSAnZnMnXG5wYXRoID0gcmVxdWlyZSAncGF0aCdcbndhdGNoID0gcmVxdWlyZSAnY2hva2lkYXInXG53cmVuY2ggPSByZXF1aXJlICd3cmVuY2gnXG5fID0gcmVxdWlyZSAnbG9kYXNoJ1xucGFyc2VTdHJpbmcgPSByZXF1aXJlKCd4bWwyanMnKS5wYXJzZVN0cmluZ1xud29ya2luZ0RpciA9IHByb2Nlc3MuY3dkKClcblJ4ID0gcmVxdWlyZSBcInJ4XCJcblxuZmluZFNvdXJjZUZpbGVzID0gKGZyb20sIGV4dGVuc2lvbnMsIGV4Y2x1ZGVzLCBiYXNlRGlyKSAtPlxuICB3cmVuY2gucmVhZGRpclN5bmNSZWN1cnNpdmUoZnJvbSlcbiAgICAuZmlsdGVyIChmKSAtPlxuICAgICAgb3JpZ2luYWxGaWxlID0gcGF0aC5qb2luIGZyb20sIGZcbiAgICAgIGlzRmlsZSA9IGZzLnN0YXRTeW5jKG9yaWdpbmFsRmlsZSkuaXNGaWxlKClcbiAgICAgIGlzSW5jbHVkZWQgPSBzaG91bGRJbmNsdWRlIGYsIGlzRmlsZSwgZXh0ZW5zaW9ucywgZXhjbHVkZXMsIGJhc2VEaXJcbiAgICAgIGlzSW5jbHVkZWQgYW5kIGlzRmlsZVxuICAgIC5tYXAgKGYpIC0+IHBhdGguam9pbiBmcm9tLCBmXG5cbnNob3VsZEluY2x1ZGUgPSAoZiwgaXNGaWxlLCBleHRlbnNpb25zLCBleGNsdWRlcywgYmFzZURpcikgLT5cbiAgI1RPRE86IG9ubHkgYWRkcyB0aGUgLiB0byB5b3UgZm9yIGV4dGVuc2lvbnMgaWYgaXRzIGxlZnQgb2ZmXG4gIGV4dGVuc2lvbnMgPSBleHRlbnNpb25zLm1hcCAoZXh0KSAtPiBcIi4je2V4dH1cIlxuICBleHQgPSBwYXRoLmV4dG5hbWUgZlxuICBtYXRjaGVzRXh0ZW5zaW9uID0gbm90IGlzRmlsZSBvciBfLmNvbnRhaW5zIGV4dGVuc2lvbnMsIGV4dFxuICBhdFJvb3QgPSBpc0ZpbGUgYW5kIGYuaW5kZXhPZihwYXRoLnNlcCkgPT0gLTFcbiAgZXhjbHVkZWQgPSBpc0V4Y2x1ZGVkQnlDb25maWcgZiwgZXhjbHVkZXMsIGJhc2VEaXJcbiAgbWF0Y2hlc0V4dGVuc2lvbiBhbmQgbm90IGV4Y2x1ZGVkIGFuZCBub3QgYXRSb290XG5cbndpdGhvdXRQYXRoID0gKGZyb21QYXRoKSAtPlxuICAoaW5wdXQpIC0+IGlucHV0LnJlcGxhY2UgXCIje2Zyb21QYXRofSN7cGF0aC5zZXB9XCIsICcnXG5cbnByZXBhcmVGaWxlV2F0Y2hlciA9IChmcm9tLCBleHRlbnNpb25zLCBleGNsdWRlcywgaXNCdWlsZCwgZmlsZVdhdGNoZXJTZXR0aW5ncywgYmFzZURpcikgLT5cbiAgI1RPRE86IG5vIG1vcmUgc3luYyBjYWxsc1xuICBmaWxlcyAgPSBmaW5kU291cmNlRmlsZXMgZnJvbSwgZXh0ZW5zaW9ucywgZXhjbHVkZXMsIGJhc2VEaXJcbiAgbnVtYmVyT2ZGaWxlcyAgPSBmaWxlcy5sZW5ndGhcbiAgZml4UGF0aCA9IHdpdGhvdXRQYXRoIGZyb21cblxuICBzZXR0aW5ncyA9XG4gICAgaWdub3JlZDogKGZpbGUpIC0+XG4gICAgICBpc0ZpbGUgPSBmcy5zdGF0U3luYyhmaWxlKS5pc0ZpbGUoKVxuICAgICAgZiA9IGZpeFBhdGggZmlsZVxuICAgICAgbm90IChzaG91bGRJbmNsdWRlIGYsIGlzRmlsZSwgZXh0ZW5zaW9ucywgZXhjbHVkZXMsIGJhc2VEaXIpXG4gICAgcGVyc2lzdGVudDogbm90IGlzQnVpbGRcblxuICB3YXRjaFNldHRpbmdzID0gXy5leHRlbmQgc2V0dGluZ3MsIGZpbGVXYXRjaGVyU2V0dGluZ3NcblxuICBvYnNlcnZhYmxlRm9yID0gKGV2ZW50KSAtPlxuICAgIFJ4Lk9ic2VydmFibGUuZnJvbUV2ZW50IHdhdGNoZXIsIGV2ZW50XG5cbiAgbG9nIFwiZGVidWdcIiwgXCJzdGFydGluZyBmaWxlIHdhdGNoZXIgb24gW1sgI3tmcm9tfSBdXSB1c2VQb2xsaW5nOiAje3dhdGNoU2V0dGluZ3MudXNlUG9sbGluZ31cIlxuXG4gIHdhdGNoZXIgPSB3YXRjaC53YXRjaCBmcm9tLCB3YXRjaFNldHRpbmdzXG4gIGFkZHMgPSBvYnNlcnZhYmxlRm9yIFwiYWRkXCJcbiAgY2hhbmdlcyA9IG9ic2VydmFibGVGb3IgXCJjaGFuZ2VcIlxuICB1bmxpbmtzID0gb2JzZXJ2YWJsZUZvciBcInVubGlua1wiXG4gIGVycm9ycyA9IChvYnNlcnZhYmxlRm9yIFwiZXJyb3JcIikuc2VsZWN0TWFueSAoZSkgLT4gUnguT2JzZXJ2YWJsZS50aHJvdyBlXG4gIHtudW1iZXJPZkZpbGVzLCBhZGRzLCBjaGFuZ2VzLCB1bmxpbmtzLCBlcnJvcnN9XG5cbnN0YXJ0V2F0Y2hpbmcgPSAoXG4gIGZyb20sXG4gIHtudW1iZXJPZkZpbGVzLCBhZGRzLCBjaGFuZ2VzLCB1bmxpbmtzLCBlcnJvcnN9LFxuICBvcHRpb25zLFxuICBjYikgLT5cblxuICBmcm9tU291cmNlID0gKG9icykgLT5cbiAgICBvYnMubWVyZ2UoZXJyb3JzKVxuXG4gIGluaXRpYWxDb3B5ID0gZnJvbVNvdXJjZShhZGRzKS50YWtlKG51bWJlck9mRmlsZXMpXG5cbiAgaW5pdGlhbENvcHkuc3Vic2NyaWJlKFxuICAgIChmKSAtPlxuICAgICAgY29weUZpbGUgZiwgZnJvbSwgb3B0aW9uc1xuICAgIChlKSAtPlxuICAgICAgbG9nIFwid2FyblwiLCBcIkZpbGUgd2F0Y2hpbmcgZXJyb3I6ICN7ZX1cIlxuICAgICAgY2IoKSBpZiBjYlxuICAgICgpIC0+XG4gICAgICBvbmdvaW5nQ29weSA9IGZyb21Tb3VyY2UoYWRkcy5tZXJnZSBjaGFuZ2VzKVxuICAgICAgb25nb2luZ0NvcHkuc3Vic2NyaWJlKFxuICAgICAgICAoZikgLT4gY29weUZpbGUgZiwgZnJvbSwgb3B0aW9uc1xuICAgICAgICAoZSkgLT4gbG9nIFwid2FyblwiLCBcIkZpbGUgd2F0Y2hpbmcgZXJyb3I6ICN7ZX1cIlxuICAgICAgKVxuICAgICAgbG9nIFwiaW5mb1wiLCBcImZpbmlzaGVkIGluaXRpYWwgY29weSBmb3I6ICN7ZnJvbX1cIlxuICAgICAgY2IoKSBpZiBjYlxuICApXG5cbiAgZGVsZXRlcyA9IGZyb21Tb3VyY2UodW5saW5rcylcblxuICBkZWxldGVzLnN1YnNjcmliZShcbiAgICAoZikgLT5cbiAgICAgIG91dEZpbGUgPSB0cmFuc2Zvcm1QYXRoIGYsIGZyb20sIG9wdGlvbnNcbiAgICAgIGRlbGV0ZUZpbGUgb3V0RmlsZVxuICAgIChlKSAtPiBsb2cgXCJ3YXJuXCIsIFwiRmlsZSB3YXRjaGluZyBlcnJvcnM6ICN7ZX1cIlxuICApXG5cbmNvcHlGaWxlID0gKGZpbGUsIGZyb20sIG9wdGlvbnMpIC0+XG4gIGZzLnJlYWRGaWxlIGZpbGUsIChlcnIsIGRhdGEpIC0+XG4gICAgaWYgZXJyXG4gICAgICBsb2cgXCJlcnJvclwiLCBcIkVycm9yIHJlYWRpbmcgZmlsZSBbWyAje2ZpbGV9IF1dLCAje2Vycn1cIlxuICAgICAgcmV0dXJuXG5cbiAgICBvdXRGaWxlID0gdHJhbnNmb3JtUGF0aCBmaWxlLCBmcm9tLCBvcHRpb25zXG5cbiAgICBkaXJuYW1lID0gcGF0aC5kaXJuYW1lIG91dEZpbGVcbiAgICB1bmxlc3MgZnMuZXhpc3RzU3luYyBkaXJuYW1lXG4gICAgICB3cmVuY2gubWtkaXJTeW5jUmVjdXJzaXZlIGRpcm5hbWUsIDBvMDc3N1xuXG4gICAgZnMud3JpdGVGaWxlIG91dEZpbGUsIGRhdGEsIChlcnIpIC0+XG4gICAgICBpZiBlcnJcbiAgICAgICAgbG9nIFwiZXJyb3JcIiwgXCJFcnJvciByZWFkaW5nIGZpbGUgW1sgI3tmaWxlfSBdXSwgI3tlcnJ9XCJcbiAgICAgIGVsc2VcbiAgICAgICAgbG9nIFwic3VjY2Vzc1wiLCBcIkZpbGUgY29waWVkIHRvIGRlc3RpbmF0aW9uIFtbICN7b3V0RmlsZX0gXV0gZnJvbSBbWyAje2ZpbGV9IF1dXCJcblxuZGVsZXRlRmlsZVN5bmMgPSAoZmlsZSkgLT5cbiAgaWYgZnMuZXhpc3RzU3luYyBmaWxlXG4gICAgZnMudW5saW5rU3luYyBmaWxlXG4gICAgbG9nIFwic3VjY2Vzc1wiLCBcIkZpbGUgW1sgI3tmaWxlfSBdXSBkZWxldGVkLlwiXG5cbmRlbGV0ZUZpbGUgPSAoZmlsZSkgLT5cbiAgZnMuZXhpc3RzIGZpbGUsIChleGlzdHMpIC0+XG4gICAgaWYgZXhpc3RzXG4gICAgICBmcy51bmxpbmsgZmlsZSwgKGVycikgLT5cbiAgICAgICAgaWYgZXJyXG4gICAgICAgICAgbG9nIFwiZXJyb3JcIiwgXCJFcnJvciBkZWxldGluZyBmaWxlIFtbICN7ZmlsZX0gXV0sICN7ZXJyfVwiXG4gICAgICAgIGVsc2VcbiAgICAgICAgICBsb2cgXCJzdWNjZXNzXCIsIFwiRmlsZSBbWyAje2ZpbGV9IF1dIGRlbGV0ZWQuXCJcblxuZGVsZXRlRGlyZWN0b3J5ID0gKGRpciwgY2IpIC0+XG4gIGlmIGZzLmV4aXN0c1N5bmMgZGlyXG4gICAgZnMucm1kaXIgZGlyLCAoZXJyKSAtPlxuICAgICAgaWYgZXJyPy5jb2RlIGlzIG5vdCBcIkVOT1RFTVBUWVwiXG4gICAgICAgIGxvZyBcImVycm9yXCIsIFwiVW5hYmxlIHRvIGRlbGV0ZSBkaXJlY3RvcnkgW1sgI3tkaXJ9IF1dXCJcbiAgICAgICAgbG9nIFwiZXJyb3JcIiwgZXJyXG4gICAgICBlbHNlXG4gICAgICAgIGxvZyBcImluZm9cIiwgXCJEZWxldGVkIGVtcHR5IGRpcmVjdG9yeSBbWyAje2Rpcn0gXV1cIlxuICAgICAgY2IoKSBpZiBjYlxuICBlbHNlIGNiKCkgaWYgY2Jcblxud2l0aG91dEJhc2VEaXIgPSAodGVzdFBhdGgsIGJhc2VEaXIpIC0+XG4gIGJhc2VEaXIgPSBpZiAoYmFzZURpciBhbmQgYmFzZURpci5sZW5ndGgpIHRoZW4gcGF0aC5qb2luKGJhc2VEaXIsIFwiL1wiKSBlbHNlIGJhc2VEaXJcbiAgY3dkID0gcHJvY2Vzcy5jd2QoKVxuICBuZXdQYXRoID0gdGVzdFBhdGgucmVwbGFjZShjd2QsIFwiXCIpXG4gIHN0YXJ0ID0gTWF0aC5tYXgobmV3UGF0aC5pbmRleE9mKGJhc2VEaXIpLCAwKVxuICBuZXdQYXRoID0gbmV3UGF0aC5zdWJzdHJpbmcoc3RhcnQpXG4gIHJldHVyblZhbCA9IG5ld1BhdGgucmVwbGFjZShiYXNlRGlyIG9yIFwiXCIsIFwiXCIpLnJlcGxhY2UoL15cXC98XlxcXFwvLCBcIlwiKVxuICByZXR1cm4gcmV0dXJuVmFsXG5cbnRyYW5zZm9ybVBhdGggPSAoZmlsZSwgZnJvbSwge3NvdXJjZURpciwgY29udmVudGlvbnMsIGJhc2VEaXJ9KSAtPlxuICBuZXdGaWxlUGF0aCA9IHdpdGhvdXRCYXNlRGlyIGZpbGUsIGJhc2VEaXJcbiAgbmV3U291cmNlRGlyID0gd2l0aG91dEJhc2VEaXIgc291cmNlRGlyLCBiYXNlRGlyXG4gIGZpeFBhdGggPSB3aXRob3V0UGF0aCBmcm9tXG4gIG5ld0ZpbGUgPSBmaXhQYXRoIG5ld0ZpbGVQYXRoXG4gIHJlc3VsdCA9IF8ucmVkdWNlKGNvbnZlbnRpb25zLCAoYWNjLCB7bWF0Y2gsIHRyYW5zZm9ybX0pIC0+XG4gICAgZXh0ID0gcGF0aC5leHRuYW1lIGFjY1xuICAgIGlmIG1hdGNoIGFjYywgZXh0LCBsb2cgdGhlbiB0cmFuc2Zvcm0gYWNjLCBwYXRoLCBsb2cgZWxzZSBhY2NcbiAgLCBuZXdGaWxlKVxuICByZXN1bHQgPSByZXN1bHQucmVwbGFjZShuZXdTb3VyY2VEaXIsIFwiXCIpXG4gIGZpbmFsUGF0aCA9IHBhdGguam9pbiBiYXNlRGlyIG9yIFwiXCIsIG5ld1NvdXJjZURpciwgcmVzdWx0XG4gIGZpbmFsUGF0aFxuXG5tYXRjaGVzV2l0aG91dEJhc2VEaXIgPSAodGVzdFBhdGgsIGJhc2VEaXIsIHByZWRpY2F0ZSkgLT5cbiAgbmV3VGVzdCA9IHdpdGhvdXRCYXNlRGlyIHRlc3RQYXRoLCBiYXNlRGlyXG4gIHNob3VsZEV4Y2x1ZGUgPSBwcmVkaWNhdGUobmV3VGVzdClcbiAgcmV0dXJuIHNob3VsZEV4Y2x1ZGVcblxuZXhjbHVkZVN0cmF0ZWdpZXMgPVxuICBzdHJpbmc6XG4gICAgaWRlbnRpdHk6IF8uaXNTdHJpbmdcbiAgICBwcmVkaWNhdGU6IChleCwgdGVzdFBhdGgsIGJhc2VEaXIpIC0+ICBtYXRjaGVzV2l0aG91dEJhc2VEaXIgdGVzdFBhdGgsIGJhc2VEaXIsIChuZXdQYXRoKSAtPiBuZXdQYXRoLmluZGV4T2YoZXgpID09IDBcbiAgcmVnZXg6XG4gICAgaWRlbnRpdHk6IF8uaXNSZWdFeHBcbiAgICBwcmVkaWNhdGU6IChleCwgdGVzdFBhdGgsIGJhc2VEaXIpIC0+IG1hdGNoZXNXaXRob3V0QmFzZURpciB0ZXN0UGF0aCwgYmFzZURpciwgKG5ld1BhdGgpIC0+IGV4LnRlc3QgbmV3UGF0aFxuXG5pc0V4Y2x1ZGVkQnlDb25maWcgPSAodGVzdFBhdGgsIGV4Y2x1ZGVzLCBiYXNlRGlyKSAtPlxuICBvZlR5cGUgPSAobWV0aG9kKSAtPlxuICAgIGV4Y2x1ZGVzLmZpbHRlciAoZikgLT4gbWV0aG9kKGYpXG5cbiAgXy5hbnkgZXhjbHVkZVN0cmF0ZWdpZXMsICh7aWRlbnRpdHksIHByZWRpY2F0ZX0pIC0+XG4gICAgXy5hbnkgKG9mVHlwZSBpZGVudGl0eSksIChleCkgLT4gcHJlZGljYXRlIGV4LCB0ZXN0UGF0aCwgYmFzZURpclxuXG5wYXJzZVhtbCA9IChjb250ZW50KSAtPlxuICByZXN1bHQgPSB7fVxuICBwYXJzZVN0cmluZyBjb250ZW50LCAoZXJyLCBvdXRwdXQpIC0+XG4gICAgcmVzdWx0ID0gb3V0cHV0XG4gIHJlc3VsdFxuXG5maW5kQm90dGxlcyA9IChzb3VyY2VEaXIpIC0+XG4gIGxpbmtzRmlsZSA9IHBhdGguam9pbiBzb3VyY2VEaXIsIFwiLmxpbmtzXCJcbiAgaWYgZnMuZXhpc3RzU3luYyBsaW5rc0ZpbGVcbiAgICBlbmNvZGluZyA9IFwidXRmOFwiXG4gICAgZGF0YSA9IGZzLnJlYWRGaWxlU3luYyBsaW5rc0ZpbGUsIHtlbmNvZGluZ31cbiAgICBsaW5rc1htbCA9IHBhcnNlWG1sIGRhdGFcbiAgICBib3R0bGVzID0gbGlua3NYbWw/LmxpbmtzPy5pbmNsdWRlIHx8IFtdXG4gICAgdW5sZXNzIGJvdHRsZXMgYW5kIF8uaXNBcnJheSBib3R0bGVzXG4gICAgICBsb2cgXCJlcnJvclwiLCBcIi5saW5rcyBmaWxlIG5vdCB2YWxpZFwiXG4gICAgICByZXR1cm5cbiAgICBib3R0bGVzID0gXy5tYXAoYm90dGxlcywgKGJvdHRsZSktPiBib3R0bGUucmVwbGFjZSgvXFxcXHxcXC8vLCBwYXRoLnNlcCkpXG4gICAgYm90dGxlc1xuICBlbHNlXG4gICAgW11cblxuYnVpbGRFeHRlbnNpb25zID0gKGNvbmZpZykgLT5cbiAge2NvcHksIGphdmFzY3JpcHQsIGNzc30gPSBjb25maWcuZXh0ZW5zaW9uc1xuICBleHRlbnNpb25zID0gXy51bmlvbiBjb3B5LCBqYXZhc2NyaXB0LCBjc3Ncblxuc2V0V29ya2luZ0RpciA9ICh2YWwpIC0+XG4gIHdvcmtpbmdEaXIgPSB2YWwgb3IgcHJvY2Vzcy5jd2QoKVxuXG5pbXBvcnRBc3NldHMgPSAobWltb3NhQ29uZmlnLCBvcHRpb25zLCBuZXh0KSAtPlxuICBsb2cgXCJpbmZvXCIsIFwiaW1wb3J0aW5nIGFzc2V0c1wiXG4gIHtleGNsdWRlUGF0aHMsIHNvdXJjZURpciwgY29tcGlsZWREaXIsIGlzQnVpbGQsIGNvbnZlbnRpb25zLCB1c2VQb2xsaW5nLCBpbnRlcnZhbCwgYmluYXJ5SW50ZXJ2YWwsIGJhc2VEaXJ9ID1cbiAgICBtaW1vc2FDb25maWcuZnVidW12Y1xuXG4gIGV4dGVuc2lvbnMgPSBidWlsZEV4dGVuc2lvbnMgbWltb3NhQ29uZmlnXG4gIHNldFdvcmtpbmdEaXIgYmFzZURpclxuXG4gIGxvZyBcImRlYnVnXCIsIFwiYWxsb3dlZCBleHRlbnNpb25zIFtbICN7ZXh0ZW5zaW9uc30gXV1cIlxuICBsb2cgXCJkZWJ1Z1wiLCBcImV4Y2x1ZGVQYXRocyBbWyAje2V4Y2x1ZGVQYXRoc30gXV1cIlxuXG4gIGZpbGVXYXRjaGVyU2V0dGluZ3MgPSB7dXNlUG9sbGluZywgaW50ZXJ2YWwsIGJpbmFyeUludGVydmFsfVxuXG4gIGltcG9ydEZyb20gPSAodGFyZ2V0LCBjYWxsYmFjaykgLT5cbiAgICBsb2cgXCJpbmZvXCIsIFwid2F0Y2hpbmcgI3t0YXJnZXR9XCJcbiAgICBmaWxlV2F0Y2hlciA9IHByZXBhcmVGaWxlV2F0Y2hlciB0YXJnZXQsIGV4dGVuc2lvbnMsIGV4Y2x1ZGVQYXRocywgaXNCdWlsZCwgZmlsZVdhdGNoZXJTZXR0aW5ncywgbWltb3NhQ29uZmlnLmZ1YnVtdmMuYmFzZURpclxuICAgIHN0YXJ0V2F0Y2hpbmcgdGFyZ2V0LCBmaWxlV2F0Y2hlciwge3NvdXJjZURpciwgY29udmVudGlvbnMsIGJhc2VEaXJ9LCBjYWxsYmFja1xuXG4gIHRhcmdldHMgPSBnZXRUYXJnZXRzIHdvcmtpbmdEaXJcblxuICBmaW5pc2ggPSB0cmFja0NvbXBsZXRpb24gXCJpbXBvcnRBc3NldHNcIiwgdGFyZ2V0cywgbmV4dFxuXG4gIF8uZWFjaCB0YXJnZXRzLCAodGFyZ2V0KSAtPlxuICAgIGltcG9ydEZyb20gdGFyZ2V0LCAoKSAtPiBmaW5pc2godGFyZ2V0KVxuICByZXR1cm5cblxuZ2V0VGFyZ2V0cyA9IChkaXIpIC0+XG4gIGJvdHRsZXMgPSBfLm1hcCAoZmluZEJvdHRsZXMgZGlyKSwgKGJvdHRsZSkgLT4gcGF0aC5yZXNvbHZlIGRpciwgYm90dGxlXG4gIHRhcmdldHMgPSBbXS5jb25jYXQgYm90dGxlcywgW2Rpcl1cblxuY2xlYW5Bc3NldHMgPSAobWltb3NhQ29uZmlnLCBvcHRpb25zLCBuZXh0KSAtPlxuICBsb2cgXCJpbmZvXCIsIFwiY2xlYW5pbmcgYXNzZXRzXCJcbiAge2V4dGVuc2lvbnMsIGV4Y2x1ZGVQYXRocywgc291cmNlRGlyLCBjb21waWxlZERpciwgaXNCdWlsZCwgY29udmVudGlvbnMsIGJhc2VEaXJ9ID1cbiAgICBtaW1vc2FDb25maWcuZnVidW12Y1xuICBleHRlbnNpb25zID0gYnVpbGRFeHRlbnNpb25zIG1pbW9zYUNvbmZpZ1xuICBvcHRpb25zID0ge3NvdXJjZURpciwgY29udmVudGlvbnMsIGJhc2VEaXJ9XG5cbiAgZmlsZXNGb3IgPSAodGFyZ2V0KSAtPlxuICAgIGxvZyBcImRlYnVnXCIsIFwiZmluZGluZyBmaWxlcyBmb3I6ICN7dGFyZ2V0fSB3aXRoIGV4dGVuc2lvbnM6ICN7ZXh0ZW5zaW9uc30gYW5kIGV4Y2x1ZGVQYXRoczogI3tleGNsdWRlUGF0aHN9XCJcbiAgICBmaWxlcyAgPSBmaW5kU291cmNlRmlsZXMgdGFyZ2V0LCBleHRlbnNpb25zLCBleGNsdWRlUGF0aHNcbiAgICBvdXRwdXRGaWxlcyA9IF8ubWFwIGZpbGVzLCAoZikgLT4gdHJhbnNmb3JtUGF0aCBmLCB0YXJnZXQsIG9wdGlvbnMsIG1pbW9zYUNvbmZpZ1xuICAgIFt0YXJnZXQsIGZpbGVzLCBvdXRwdXRGaWxlc11cblxuICB0YXJnZXRzID0gZ2V0VGFyZ2V0cyB3b3JraW5nRGlyXG5cbiAgYWxsVGFyZ2V0RmlsZXMgPSBfLm1hcCB0YXJnZXRzLCBmaWxlc0ZvclxuXG4gIGZpbmlzaCA9IHRyYWNrQ29tcGxldGlvbiBcImNsZWFuQXNzZXRzXCIsIHRhcmdldHMsIG5leHRcblxuICBfLmVhY2ggYWxsVGFyZ2V0RmlsZXMsIChbdGFyZ2V0LCBmaWxlcywgb3V0cHV0RmlsZXNdKSAtPlxuICAgIGNsZWFuIFt0YXJnZXQsIGZpbGVzLCBvdXRwdXRGaWxlc10sICgpIC0+IGZpbmlzaCh0YXJnZXQpXG4gIHJldHVyblxuXG50cmFja0NvbXBsZXRpb24gPSAodGl0bGUsIGluaXRpYWwsIGNiKSAtPlxuICByZW1haW5pbmcgPSBbXS5jb25jYXQgaW5pdGlhbFxuICBkb25lID0gKGRpcikgLT5cbiAgICByZW1haW5pbmcgPSBfLndpdGhvdXQgcmVtYWluaW5nLCBkaXJcbiAgICBpZiByZW1haW5pbmcubGVuZ3RoID09IDBcbiAgICAgIGxvZyBcImluZm9cIiwgXCJmaW5pc2hlZCAje3RpdGxlfVwiXG4gICAgICBjYigpXG4gIGRvbmVcblxuY2xlYW4gPSAoW3RhcmdldCwgZmlsZXMsIG91dHB1dEZpbGVzXSwgY2IpIC0+XG4gIF8uZWFjaCBvdXRwdXRGaWxlcywgKGYpIC0+IGRlbGV0ZUZpbGVTeW5jIGZcblxuICBkaXJzID0gXyBvdXRwdXRGaWxlc1xuICAgIC5tYXAgKGYpIC0+IHBhdGguZGlybmFtZSBmXG4gICAgLnVuaXF1ZSgpXG4gICAgLnNvcnRCeSBcImxlbmd0aFwiXG4gICAgLnJldmVyc2UoKVxuICAgIC52YWx1ZSgpXG5cbiAgaWYgZGlycy5sZW5ndGggPiAwXG4gICAgZmluaXNoID0gdHJhY2tDb21wbGV0aW9uIFwiY2xlYW5cIiwgZGlycywgY2JcblxuICAgIF8gZGlyc1xuICAgICAgLm1hcCAoZGlyKSAtPiBbZGlyLCAoKSAtPiBmaW5pc2goZGlyKV1cbiAgICAgIC5lYWNoIChbZGlyLCBjYl0pIC0+XG4gICAgICAgIGRlbGV0ZURpcmVjdG9yeSBkaXIsIGNiXG4gIGVsc2VcbiAgICBjYigpXG5cbm1vZHVsZS5leHBvcnRzID0ge2ltcG9ydEFzc2V0cywgY2xlYW5Bc3NldHN9XG4iXX0= +//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiL21udC9SZXNvdXJjZXMvUHJvamVjdHMvbWltb3NhLWZ1YnVtdmMvbGliL2Z1YnUtaW1wb3J0LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiL21udC9SZXNvdXJjZXMvUHJvamVjdHMvbWltb3NhLWZ1YnVtdmMvc3JjL2Z1YnUtaW1wb3J0LmNvZmZlZSJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxZQUFBLENBQUE7QUFBQSxJQUFBLDZhQUFBOztBQUFBLE9BRWtCLE9BQUEsQ0FBUSxRQUFSLENBQWxCLEVBQUMsV0FBQSxHQUFELEVBQU0sZ0JBQUEsUUFGTixDQUFBOztBQUFBLEtBR0EsR0FBUSxPQUFBLENBQVEsWUFBUixDQUFxQixDQUFDLEdBSDlCLENBQUE7O0FBQUEsRUFJQSxHQUFLLE9BQUEsQ0FBUSxJQUFSLENBSkwsQ0FBQTs7QUFBQSxJQUtBLEdBQU8sT0FBQSxDQUFRLE1BQVIsQ0FMUCxDQUFBOztBQUFBLEtBTUEsR0FBUSxPQUFBLENBQVEsVUFBUixDQU5SLENBQUE7O0FBQUEsTUFPQSxHQUFTLE9BQUEsQ0FBUSxRQUFSLENBUFQsQ0FBQTs7QUFBQSxDQVFBLEdBQUksT0FBQSxDQUFRLFFBQVIsQ0FSSixDQUFBOztBQUFBLFdBU0EsR0FBYyxPQUFBLENBQVEsUUFBUixDQUFpQixDQUFDLFdBVGhDLENBQUE7O0FBQUEsVUFVQSxHQUFhLE9BQU8sQ0FBQyxHQUFSLENBQUEsQ0FWYixDQUFBOztBQUFBLEVBV0EsR0FBSyxPQUFBLENBQVEsSUFBUixDQVhMLENBQUE7O0FBQUEsZUFhQSxHQUFrQixTQUFDLElBQUQsRUFBTyxVQUFQLEVBQW1CLFFBQW5CLEVBQTZCLE9BQTdCLEdBQUE7U0FDaEIsTUFBTSxDQUFDLG9CQUFQLENBQTRCLElBQTVCLENBQ0UsQ0FBQyxNQURILENBQ1UsU0FBQyxDQUFELEdBQUE7QUFDTixRQUFBLGdDQUFBO0FBQUEsSUFBQSxZQUFBLEdBQWUsSUFBSSxDQUFDLElBQUwsQ0FBVSxJQUFWLEVBQWdCLENBQWhCLENBQWYsQ0FBQTtBQUFBLElBQ0EsTUFBQSxHQUFTLEVBQUUsQ0FBQyxRQUFILENBQVksWUFBWixDQUF5QixDQUFDLE1BQTFCLENBQUEsQ0FEVCxDQUFBO0FBQUEsSUFFQSxVQUFBLEdBQWEsYUFBQSxDQUFjLENBQWQsRUFBaUIsTUFBakIsRUFBeUIsVUFBekIsRUFBcUMsUUFBckMsRUFBK0MsT0FBL0MsQ0FGYixDQUFBO1dBR0EsVUFBQSxJQUFlLE9BSlQ7RUFBQSxDQURWLENBTUUsQ0FBQyxHQU5ILENBTU8sU0FBQyxDQUFELEdBQUE7V0FBTyxJQUFJLENBQUMsSUFBTCxDQUFVLElBQVYsRUFBZ0IsQ0FBaEIsRUFBUDtFQUFBLENBTlAsRUFEZ0I7QUFBQSxDQWJsQixDQUFBOztBQUFBLGFBc0JBLEdBQWdCLFNBQUMsQ0FBRCxFQUFJLE1BQUosRUFBWSxVQUFaLEVBQXdCLFFBQXhCLEVBQWtDLE9BQWxDLEdBQUE7QUFFZCxNQUFBLHVDQUFBO0FBQUEsRUFBQSxVQUFBLEdBQWEsVUFBVSxDQUFDLEdBQVgsQ0FBZSxTQUFDLEdBQUQsR0FBQTtXQUFVLEdBQUEsR0FBRSxJQUFaO0VBQUEsQ0FBZixDQUFiLENBQUE7QUFBQSxFQUNBLEdBQUEsR0FBTSxJQUFJLENBQUMsT0FBTCxDQUFhLENBQWIsQ0FETixDQUFBO0FBQUEsRUFFQSxnQkFBQSxHQUFtQixDQUFBLE1BQUEsSUFBYyxDQUFDLENBQUMsUUFBRixDQUFXLFVBQVgsRUFBdUIsR0FBdkIsQ0FGakMsQ0FBQTtBQUFBLEVBR0EsTUFBQSxHQUFTLE1BQUEsSUFBVyxDQUFDLENBQUMsT0FBRixDQUFVLElBQUksQ0FBQyxHQUFmLENBQUEsS0FBdUIsQ0FBQSxDQUgzQyxDQUFBO0FBQUEsRUFJQSxRQUFBLEdBQVcsa0JBQUEsQ0FBbUIsQ0FBbkIsRUFBc0IsUUFBdEIsRUFBZ0MsT0FBaEMsQ0FKWCxDQUFBO1NBS0EsZ0JBQUEsSUFBcUIsQ0FBQSxRQUFyQixJQUFzQyxDQUFBLE9BUHhCO0FBQUEsQ0F0QmhCLENBQUE7O0FBQUEsV0ErQkEsR0FBYyxTQUFDLFFBQUQsR0FBQTtTQUNaLFNBQUMsS0FBRCxHQUFBO1dBQVcsS0FBSyxDQUFDLE9BQU4sQ0FBYyxFQUFBLEdBQUUsUUFBRixHQUFhLElBQUksQ0FBQyxHQUFoQyxFQUF3QyxFQUF4QyxFQUFYO0VBQUEsRUFEWTtBQUFBLENBL0JkLENBQUE7O0FBQUEsa0JBa0NBLEdBQXFCLFNBQUMsSUFBRCxFQUFPLFVBQVAsRUFBbUIsUUFBbkIsRUFBNkIsT0FBN0IsRUFBc0MsbUJBQXRDLEVBQTJELE9BQTNELEdBQUE7QUFFbkIsTUFBQSw4R0FBQTtBQUFBLEVBQUEsS0FBQSxHQUFTLGVBQUEsQ0FBZ0IsSUFBaEIsRUFBc0IsVUFBdEIsRUFBa0MsUUFBbEMsRUFBNEMsT0FBNUMsQ0FBVCxDQUFBO0FBQUEsRUFDQSxhQUFBLEdBQWlCLEtBQUssQ0FBQyxNQUR2QixDQUFBO0FBQUEsRUFFQSxPQUFBLEdBQVUsV0FBQSxDQUFZLElBQVosQ0FGVixDQUFBO0FBQUEsRUFJQSxRQUFBLEdBQ0U7QUFBQSxJQUFBLE9BQUEsRUFBUyxTQUFDLElBQUQsR0FBQTtBQUNQLFVBQUEsU0FBQTtBQUFBLE1BQUEsTUFBQSxHQUFTLEVBQUUsQ0FBQyxRQUFILENBQVksSUFBWixDQUFpQixDQUFDLE1BQWxCLENBQUEsQ0FBVCxDQUFBO0FBQUEsTUFDQSxDQUFBLEdBQUksT0FBQSxDQUFRLElBQVIsQ0FESixDQUFBO2FBRUEsQ0FBQSxDQUFLLGFBQUEsQ0FBYyxDQUFkLEVBQWlCLE1BQWpCLEVBQXlCLFVBQXpCLEVBQXFDLFFBQXJDLEVBQStDLE9BQS9DLENBQUQsRUFIRztJQUFBLENBQVQ7QUFBQSxJQUlBLFVBQUEsRUFBWSxDQUFBLE9BSlo7R0FMRixDQUFBO0FBQUEsRUFXQSxhQUFBLEdBQWdCLENBQUMsQ0FBQyxNQUFGLENBQVMsUUFBVCxFQUFtQixtQkFBbkIsQ0FYaEIsQ0FBQTtBQUFBLEVBYUEsYUFBQSxHQUFnQixTQUFDLEtBQUQsR0FBQTtXQUNkLEVBQUUsQ0FBQyxVQUFVLENBQUMsU0FBZCxDQUF3QixPQUF4QixFQUFpQyxLQUFqQyxFQURjO0VBQUEsQ0FiaEIsQ0FBQTtBQUFBLEVBZ0JBLEdBQUEsQ0FBSSxPQUFKLEVBQWMsOEJBQUEsR0FBNkIsSUFBN0IsR0FBbUMsa0JBQW5DLEdBQW9ELGFBQWEsQ0FBQyxVQUFoRixDQWhCQSxDQUFBO0FBQUEsRUFrQkEsT0FBQSxHQUFVLEtBQUssQ0FBQyxLQUFOLENBQVksSUFBWixFQUFrQixhQUFsQixDQWxCVixDQUFBO0FBQUEsRUFtQkEsSUFBQSxHQUFPLGFBQUEsQ0FBYyxLQUFkLENBbkJQLENBQUE7QUFBQSxFQW9CQSxPQUFBLEdBQVUsYUFBQSxDQUFjLFFBQWQsQ0FwQlYsQ0FBQTtBQUFBLEVBcUJBLE9BQUEsR0FBVSxhQUFBLENBQWMsUUFBZCxDQXJCVixDQUFBO0FBQUEsRUFzQkEsTUFBQSxHQUFTLENBQUMsYUFBQSxDQUFjLE9BQWQsQ0FBRCxDQUF1QixDQUFDLFVBQXhCLENBQW1DLFNBQUMsQ0FBRCxHQUFBO1dBQU8sRUFBRSxDQUFDLFVBQVUsQ0FBQyxPQUFELENBQWIsQ0FBb0IsQ0FBcEIsRUFBUDtFQUFBLENBQW5DLENBdEJULENBQUE7U0F1QkE7QUFBQSxJQUFDLGVBQUEsYUFBRDtBQUFBLElBQWdCLE1BQUEsSUFBaEI7QUFBQSxJQUFzQixTQUFBLE9BQXRCO0FBQUEsSUFBK0IsU0FBQSxPQUEvQjtBQUFBLElBQXdDLFFBQUEsTUFBeEM7SUF6Qm1CO0FBQUEsQ0FsQ3JCLENBQUE7O0FBQUEsYUE2REEsR0FBZ0IsU0FDZCxJQURjLEVBRWQsSUFGYyxFQUdkLE9BSGMsRUFJZCxFQUpjLEdBQUE7QUFNZCxNQUFBLCtFQUFBO0FBQUEsRUFKQyxxQkFBQSxlQUFlLFlBQUEsTUFBTSxlQUFBLFNBQVMsZUFBQSxTQUFTLGNBQUEsTUFJeEMsQ0FBQTtBQUFBLEVBQUEsVUFBQSxHQUFhLFNBQUMsR0FBRCxHQUFBO1dBQ1gsR0FBRyxDQUFDLEtBQUosQ0FBVSxNQUFWLEVBRFc7RUFBQSxDQUFiLENBQUE7QUFBQSxFQUdBLFdBQUEsR0FBYyxVQUFBLENBQVcsSUFBWCxDQUFnQixDQUFDLElBQWpCLENBQXNCLGFBQXRCLENBSGQsQ0FBQTtBQUFBLEVBS0EsV0FBVyxDQUFDLFNBQVosQ0FDRSxTQUFDLENBQUQsR0FBQTtXQUNFLFFBQUEsQ0FBUyxDQUFULEVBQVksSUFBWixFQUFrQixPQUFsQixFQURGO0VBQUEsQ0FERixFQUdFLFNBQUMsQ0FBRCxHQUFBO0FBQ0UsSUFBQSxHQUFBLENBQUksTUFBSixFQUFhLHVCQUFBLEdBQXNCLENBQW5DLENBQUEsQ0FBQTtBQUNBLElBQUEsSUFBUSxFQUFSO2FBQUEsRUFBQSxDQUFBLEVBQUE7S0FGRjtFQUFBLENBSEYsRUFNRSxTQUFBLEdBQUE7QUFDRSxRQUFBLFdBQUE7QUFBQSxJQUFBLFdBQUEsR0FBYyxVQUFBLENBQVcsSUFBSSxDQUFDLEtBQUwsQ0FBVyxPQUFYLENBQVgsQ0FBZCxDQUFBO0FBQUEsSUFDQSxXQUFXLENBQUMsU0FBWixDQUNFLFNBQUMsQ0FBRCxHQUFBO2FBQU8sUUFBQSxDQUFTLENBQVQsRUFBWSxJQUFaLEVBQWtCLE9BQWxCLEVBQVA7SUFBQSxDQURGLEVBRUUsU0FBQyxDQUFELEdBQUE7YUFBTyxHQUFBLENBQUksTUFBSixFQUFhLHVCQUFBLEdBQXNCLENBQW5DLEVBQVA7SUFBQSxDQUZGLENBREEsQ0FBQTtBQUFBLElBS0EsR0FBQSxDQUFJLE1BQUosRUFBYSw2QkFBQSxHQUE0QixJQUF6QyxDQUxBLENBQUE7QUFNQSxJQUFBLElBQVEsRUFBUjthQUFBLEVBQUEsQ0FBQSxFQUFBO0tBUEY7RUFBQSxDQU5GLENBTEEsQ0FBQTtBQUFBLEVBcUJBLE9BQUEsR0FBVSxVQUFBLENBQVcsT0FBWCxDQXJCVixDQUFBO1NBdUJBLE9BQU8sQ0FBQyxTQUFSLENBQ0UsU0FBQyxDQUFELEdBQUE7QUFDRSxRQUFBLE9BQUE7QUFBQSxJQUFBLE9BQUEsR0FBVSxhQUFBLENBQWMsQ0FBZCxFQUFpQixJQUFqQixFQUF1QixPQUF2QixDQUFWLENBQUE7V0FDQSxVQUFBLENBQVcsT0FBWCxFQUZGO0VBQUEsQ0FERixFQUlFLFNBQUMsQ0FBRCxHQUFBO1dBQU8sR0FBQSxDQUFJLE1BQUosRUFBYSx3QkFBQSxHQUF1QixDQUFwQyxFQUFQO0VBQUEsQ0FKRixFQTdCYztBQUFBLENBN0RoQixDQUFBOztBQUFBLFFBaUdBLEdBQVcsU0FBQyxJQUFELEVBQU8sSUFBUCxFQUFhLE9BQWIsR0FBQTtTQUNULEVBQUUsQ0FBQyxRQUFILENBQVksSUFBWixFQUFrQixTQUFDLEdBQUQsRUFBTSxJQUFOLEdBQUE7QUFDaEIsUUFBQSxnQkFBQTtBQUFBLElBQUEsSUFBRyxHQUFIO0FBQ0UsTUFBQSxHQUFBLENBQUksT0FBSixFQUFjLHdCQUFBLEdBQXVCLElBQXZCLEdBQTZCLE9BQTdCLEdBQW1DLEdBQWpELENBQUEsQ0FBQTtBQUNBLFlBQUEsQ0FGRjtLQUFBO0FBQUEsSUFJQSxPQUFBLEdBQVUsYUFBQSxDQUFjLElBQWQsRUFBb0IsSUFBcEIsRUFBMEIsT0FBMUIsQ0FKVixDQUFBO0FBQUEsSUFNQSxPQUFBLEdBQVUsSUFBSSxDQUFDLE9BQUwsQ0FBYSxPQUFiLENBTlYsQ0FBQTtBQU9BLElBQUEsSUFBQSxDQUFBLEVBQVMsQ0FBQyxVQUFILENBQWMsT0FBZCxDQUFQO0FBQ0UsTUFBQSxNQUFNLENBQUMsa0JBQVAsQ0FBMEIsT0FBMUIsRUFBbUMsS0FBbkMsQ0FBQSxDQURGO0tBUEE7V0FVQSxFQUFFLENBQUMsU0FBSCxDQUFhLE9BQWIsRUFBc0IsSUFBdEIsRUFBNEIsU0FBQyxHQUFELEdBQUE7QUFDMUIsTUFBQSxJQUFHLEdBQUg7ZUFDRSxHQUFBLENBQUksT0FBSixFQUFjLHdCQUFBLEdBQXVCLElBQXZCLEdBQTZCLE9BQTdCLEdBQW1DLEdBQWpELEVBREY7T0FBQSxNQUFBO2VBR0UsR0FBQSxDQUFJLFNBQUosRUFBZ0IsZ0NBQUEsR0FBK0IsT0FBL0IsR0FBd0MsY0FBeEMsR0FBcUQsSUFBckQsR0FBMkQsS0FBM0UsRUFIRjtPQUQwQjtJQUFBLENBQTVCLEVBWGdCO0VBQUEsQ0FBbEIsRUFEUztBQUFBLENBakdYLENBQUE7O0FBQUEsY0FtSEEsR0FBaUIsU0FBQyxJQUFELEdBQUE7QUFDZixFQUFBLElBQUcsRUFBRSxDQUFDLFVBQUgsQ0FBYyxJQUFkLENBQUg7QUFDRSxJQUFBLEVBQUUsQ0FBQyxVQUFILENBQWMsSUFBZCxDQUFBLENBQUE7V0FDQSxHQUFBLENBQUksU0FBSixFQUFnQixVQUFBLEdBQVMsSUFBVCxHQUFlLGNBQS9CLEVBRkY7R0FEZTtBQUFBLENBbkhqQixDQUFBOztBQUFBLFVBd0hBLEdBQWEsU0FBQyxJQUFELEdBQUE7U0FDWCxFQUFFLENBQUMsTUFBSCxDQUFVLElBQVYsRUFBZ0IsU0FBQyxNQUFELEdBQUE7QUFDZCxJQUFBLElBQUcsTUFBSDthQUNFLEVBQUUsQ0FBQyxNQUFILENBQVUsSUFBVixFQUFnQixTQUFDLEdBQUQsR0FBQTtBQUNkLFFBQUEsSUFBRyxHQUFIO2lCQUNFLEdBQUEsQ0FBSSxPQUFKLEVBQWMseUJBQUEsR0FBd0IsSUFBeEIsR0FBOEIsT0FBOUIsR0FBb0MsR0FBbEQsRUFERjtTQUFBLE1BQUE7aUJBR0UsR0FBQSxDQUFJLFNBQUosRUFBZ0IsVUFBQSxHQUFTLElBQVQsR0FBZSxjQUEvQixFQUhGO1NBRGM7TUFBQSxDQUFoQixFQURGO0tBRGM7RUFBQSxDQUFoQixFQURXO0FBQUEsQ0F4SGIsQ0FBQTs7QUFBQSxlQWlJQSxHQUFrQixTQUFDLEdBQUQsRUFBTSxFQUFOLEdBQUE7QUFDaEIsRUFBQSxJQUFHLEVBQUUsQ0FBQyxVQUFILENBQWMsR0FBZCxDQUFIO1dBQ0UsRUFBRSxDQUFDLEtBQUgsQ0FBUyxHQUFULEVBQWMsU0FBQyxHQUFELEdBQUE7QUFDWixNQUFBLG1CQUFHLEdBQUcsQ0FBRSxjQUFMLEtBQWEsQ0FBQSxXQUFoQjtBQUNFLFFBQUEsR0FBQSxDQUFJLE9BQUosRUFBYyxnQ0FBQSxHQUErQixHQUEvQixHQUFvQyxLQUFsRCxDQUFBLENBQUE7QUFBQSxRQUNBLEdBQUEsQ0FBSSxPQUFKLEVBQWEsR0FBYixDQURBLENBREY7T0FBQSxNQUFBO0FBSUUsUUFBQSxHQUFBLENBQUksTUFBSixFQUFhLDZCQUFBLEdBQTRCLEdBQTVCLEdBQWlDLEtBQTlDLENBQUEsQ0FKRjtPQUFBO0FBS0EsTUFBQSxJQUFRLEVBQVI7ZUFBQSxFQUFBLENBQUEsRUFBQTtPQU5ZO0lBQUEsQ0FBZCxFQURGO0dBQUEsTUFBQTtBQVFLLElBQUEsSUFBUSxFQUFSO2FBQUEsRUFBQSxDQUFBLEVBQUE7S0FSTDtHQURnQjtBQUFBLENBaklsQixDQUFBOztBQUFBLGNBNElBLEdBQWlCLFNBQUMsUUFBRCxFQUFXLE9BQVgsR0FBQTtBQUNmLE1BQUEsOEJBQUE7QUFBQSxFQUFBLE9BQUEsR0FBYyxPQUFBLElBQVksT0FBTyxDQUFDLE1BQXhCLEdBQXFDLElBQUksQ0FBQyxJQUFMLENBQVUsT0FBVixFQUFtQixHQUFuQixDQUFyQyxHQUFrRSxPQUE1RSxDQUFBO0FBQUEsRUFDQSxHQUFBLEdBQU0sT0FBTyxDQUFDLEdBQVIsQ0FBQSxDQUROLENBQUE7QUFBQSxFQUVBLE9BQUEsR0FBVSxRQUFRLENBQUMsT0FBVCxDQUFpQixHQUFqQixFQUFzQixFQUF0QixDQUZWLENBQUE7QUFBQSxFQUdBLEtBQUEsR0FBUSxJQUFJLENBQUMsR0FBTCxDQUFTLE9BQU8sQ0FBQyxPQUFSLENBQWdCLE9BQWhCLENBQVQsRUFBbUMsQ0FBbkMsQ0FIUixDQUFBO0FBQUEsRUFJQSxPQUFBLEdBQVUsT0FBTyxDQUFDLFNBQVIsQ0FBa0IsS0FBbEIsQ0FKVixDQUFBO0FBQUEsRUFLQSxTQUFBLEdBQVksT0FBTyxDQUFDLE9BQVIsQ0FBZ0IsT0FBQSxJQUFXLEVBQTNCLEVBQStCLEVBQS9CLENBQWtDLENBQUMsT0FBbkMsQ0FBMkMsU0FBM0MsRUFBc0QsRUFBdEQsQ0FMWixDQUFBO0FBTUEsU0FBTyxTQUFQLENBUGU7QUFBQSxDQTVJakIsQ0FBQTs7QUFBQSxhQXFKQSxHQUFnQixTQUFDLElBQUQsRUFBTyxJQUFQLEVBQWEsSUFBYixHQUFBO0FBQ2QsTUFBQSwrRkFBQTtBQUFBLEVBRDRCLGlCQUFBLFdBQVcsbUJBQUEsYUFBYSxlQUFBLE9BQ3BELENBQUE7QUFBQSxFQUFBLFdBQUEsR0FBYyxjQUFBLENBQWUsSUFBZixFQUFxQixPQUFyQixDQUFkLENBQUE7QUFBQSxFQUNBLFlBQUEsR0FBZSxjQUFBLENBQWUsU0FBZixFQUEwQixPQUExQixDQURmLENBQUE7QUFBQSxFQUVBLE9BQUEsR0FBVSxXQUFBLENBQVksSUFBWixDQUZWLENBQUE7QUFBQSxFQUdBLE9BQUEsR0FBVSxPQUFBLENBQVEsV0FBUixDQUhWLENBQUE7QUFBQSxFQUlBLE1BQUEsR0FBUyxDQUFDLENBQUMsTUFBRixDQUFTLFdBQVQsRUFBc0IsU0FBQyxHQUFELEVBQU0sS0FBTixHQUFBO0FBQzdCLFFBQUEscUJBQUE7QUFBQSxJQURvQyxjQUFBLE9BQU8sa0JBQUEsU0FDM0MsQ0FBQTtBQUFBLElBQUEsR0FBQSxHQUFNLElBQUksQ0FBQyxPQUFMLENBQWEsR0FBYixDQUFOLENBQUE7QUFDQSxJQUFBLElBQUcsS0FBQSxDQUFNLEdBQU4sRUFBVyxHQUFYLEVBQWdCLEdBQWhCLENBQUg7YUFBNEIsU0FBQSxDQUFVLEdBQVYsRUFBZSxJQUFmLEVBQXFCLEdBQXJCLEVBQTVCO0tBQUEsTUFBQTthQUEwRCxJQUExRDtLQUY2QjtFQUFBLENBQXRCLEVBR1AsT0FITyxDQUpULENBQUE7QUFBQSxFQVFBLE1BQUEsR0FBUyxNQUFNLENBQUMsT0FBUCxDQUFlLFlBQWYsRUFBNkIsRUFBN0IsQ0FSVCxDQUFBO0FBQUEsRUFTQSxTQUFBLEdBQVksSUFBSSxDQUFDLElBQUwsQ0FBVSxPQUFBLElBQVcsRUFBckIsRUFBeUIsWUFBekIsRUFBdUMsTUFBdkMsQ0FUWixDQUFBO1NBVUEsVUFYYztBQUFBLENBckpoQixDQUFBOztBQUFBLHFCQWtLQSxHQUF3QixTQUFDLFFBQUQsRUFBVyxPQUFYLEVBQW9CLFNBQXBCLEdBQUE7QUFDdEIsTUFBQSxzQkFBQTtBQUFBLEVBQUEsT0FBQSxHQUFVLGNBQUEsQ0FBZSxRQUFmLEVBQXlCLE9BQXpCLENBQVYsQ0FBQTtBQUFBLEVBQ0EsYUFBQSxHQUFnQixTQUFBLENBQVUsT0FBVixDQURoQixDQUFBO0FBRUEsU0FBTyxhQUFQLENBSHNCO0FBQUEsQ0FsS3hCLENBQUE7O0FBQUEsaUJBdUtBLEdBQ0U7QUFBQSxFQUFBLE1BQUEsRUFDRTtBQUFBLElBQUEsUUFBQSxFQUFVLENBQUMsQ0FBQyxRQUFaO0FBQUEsSUFDQSxTQUFBLEVBQVcsU0FBQyxFQUFELEVBQUssUUFBTCxFQUFlLE9BQWYsR0FBQTthQUE0QixxQkFBQSxDQUFzQixRQUF0QixFQUFnQyxPQUFoQyxFQUF5QyxTQUFDLE9BQUQsR0FBQTtlQUFhLE9BQU8sQ0FBQyxPQUFSLENBQWdCLEVBQWhCLENBQUEsS0FBdUIsRUFBcEM7TUFBQSxDQUF6QyxFQUE1QjtJQUFBLENBRFg7R0FERjtBQUFBLEVBR0EsS0FBQSxFQUNFO0FBQUEsSUFBQSxRQUFBLEVBQVUsQ0FBQyxDQUFDLFFBQVo7QUFBQSxJQUNBLFNBQUEsRUFBVyxTQUFDLEVBQUQsRUFBSyxRQUFMLEVBQWUsT0FBZixHQUFBO2FBQTJCLHFCQUFBLENBQXNCLFFBQXRCLEVBQWdDLE9BQWhDLEVBQXlDLFNBQUMsT0FBRCxHQUFBO2VBQWEsRUFBRSxDQUFDLElBQUgsQ0FBUSxPQUFSLEVBQWI7TUFBQSxDQUF6QyxFQUEzQjtJQUFBLENBRFg7R0FKRjtDQXhLRixDQUFBOztBQUFBLGtCQStLQSxHQUFxQixTQUFDLFFBQUQsRUFBVyxRQUFYLEVBQXFCLE9BQXJCLEdBQUE7QUFDbkIsTUFBQSxNQUFBO0FBQUEsRUFBQSxNQUFBLEdBQVMsU0FBQyxNQUFELEdBQUE7V0FDUCxRQUFRLENBQUMsTUFBVCxDQUFnQixTQUFDLENBQUQsR0FBQTthQUFPLE1BQUEsQ0FBTyxDQUFQLEVBQVA7SUFBQSxDQUFoQixFQURPO0VBQUEsQ0FBVCxDQUFBO1NBR0EsQ0FBQyxDQUFDLEdBQUYsQ0FBTSxpQkFBTixFQUF5QixTQUFDLElBQUQsR0FBQTtBQUN2QixRQUFBLG1CQUFBO0FBQUEsSUFEeUIsZ0JBQUEsVUFBVSxpQkFBQSxTQUNuQyxDQUFBO1dBQUEsQ0FBQyxDQUFDLEdBQUYsQ0FBTyxNQUFBLENBQU8sUUFBUCxDQUFQLEVBQXlCLFNBQUMsRUFBRCxHQUFBO2FBQVEsU0FBQSxDQUFVLEVBQVYsRUFBYyxRQUFkLEVBQXdCLE9BQXhCLEVBQVI7SUFBQSxDQUF6QixFQUR1QjtFQUFBLENBQXpCLEVBSm1CO0FBQUEsQ0EvS3JCLENBQUE7O0FBQUEsUUFzTEEsR0FBVyxTQUFDLE9BQUQsR0FBQTtBQUNULE1BQUEsTUFBQTtBQUFBLEVBQUEsTUFBQSxHQUFTLEVBQVQsQ0FBQTtBQUFBLEVBQ0EsV0FBQSxDQUFZLE9BQVosRUFBcUIsU0FBQyxHQUFELEVBQU0sTUFBTixHQUFBO1dBQ25CLE1BQUEsR0FBUyxPQURVO0VBQUEsQ0FBckIsQ0FEQSxDQUFBO1NBR0EsT0FKUztBQUFBLENBdExYLENBQUE7O0FBQUEsV0E0TEEsR0FBYyxTQUFDLFNBQUQsR0FBQTtBQUNaLE1BQUEsbURBQUE7QUFBQSxFQUFBLFNBQUEsR0FBWSxJQUFJLENBQUMsSUFBTCxDQUFVLFNBQVYsRUFBcUIsUUFBckIsQ0FBWixDQUFBO0FBQ0EsRUFBQSxJQUFHLEVBQUUsQ0FBQyxVQUFILENBQWMsU0FBZCxDQUFIO0FBQ0UsSUFBQSxRQUFBLEdBQVcsTUFBWCxDQUFBO0FBQUEsSUFDQSxJQUFBLEdBQU8sRUFBRSxDQUFDLFlBQUgsQ0FBZ0IsU0FBaEIsRUFBMkI7QUFBQSxNQUFDLFVBQUEsUUFBRDtLQUEzQixDQURQLENBQUE7QUFBQSxJQUVBLFFBQUEsR0FBVyxRQUFBLENBQVMsSUFBVCxDQUZYLENBQUE7QUFBQSxJQUdBLE9BQUEsK0RBQXlCLENBQUUsMEJBQWpCLElBQTRCLEVBSHRDLENBQUE7QUFJQSxJQUFBLElBQUEsQ0FBQSxDQUFPLE9BQUEsSUFBWSxDQUFDLENBQUMsT0FBRixDQUFVLE9BQVYsQ0FBbkIsQ0FBQTtBQUNFLE1BQUEsR0FBQSxDQUFJLE9BQUosRUFBYSx1QkFBYixDQUFBLENBQUE7QUFDQSxZQUFBLENBRkY7S0FKQTtBQUFBLElBT0EsT0FBQSxHQUFVLENBQUMsQ0FBQyxHQUFGLENBQU0sT0FBTixFQUFlLFNBQUMsTUFBRCxHQUFBO2FBQVcsTUFBTSxDQUFDLE9BQVAsQ0FBZSxPQUFmLEVBQXdCLElBQUksQ0FBQyxHQUE3QixFQUFYO0lBQUEsQ0FBZixDQVBWLENBQUE7V0FRQSxRQVRGO0dBQUEsTUFBQTtXQVdFLEdBWEY7R0FGWTtBQUFBLENBNUxkLENBQUE7O0FBQUEsZUEyTUEsR0FBa0IsU0FBQyxNQUFELEdBQUE7QUFDaEIsTUFBQSx3Q0FBQTtBQUFBLEVBQUEsUUFBMEIsTUFBTSxDQUFDLFVBQWpDLEVBQUMsYUFBQSxJQUFELEVBQU8sbUJBQUEsVUFBUCxFQUFtQixZQUFBLEdBQW5CLENBQUE7U0FDQSxVQUFBLEdBQWEsQ0FBQyxDQUFDLEtBQUYsQ0FBUSxJQUFSLEVBQWMsVUFBZCxFQUEwQixHQUExQixFQUZHO0FBQUEsQ0EzTWxCLENBQUE7O0FBQUEsYUErTUEsR0FBZ0IsU0FBQyxHQUFELEdBQUE7U0FDZCxVQUFBLEdBQWEsR0FBQSxJQUFPLE9BQU8sQ0FBQyxHQUFSLENBQUEsRUFETjtBQUFBLENBL01oQixDQUFBOztBQUFBLFlBa05BLEdBQWUsU0FBQyxZQUFELEVBQWUsT0FBZixFQUF3QixJQUF4QixHQUFBO0FBQ2IsTUFBQSw4S0FBQTtBQUFBLEVBQUEsR0FBQSxDQUFJLE1BQUosRUFBWSxrQkFBWixDQUFBLENBQUE7QUFBQSxFQUNBLFFBQ0UsWUFBWSxDQUFDLE9BRGYsRUFBQyxxQkFBQSxZQUFELEVBQWUsa0JBQUEsU0FBZixFQUEwQixvQkFBQSxXQUExQixFQUF1QyxnQkFBQSxPQUF2QyxFQUFnRCxvQkFBQSxXQUFoRCxFQUE2RCxtQkFBQSxVQUE3RCxFQUF5RSxpQkFBQSxRQUF6RSxFQUFtRix1QkFBQSxjQUFuRixFQUFtRyxnQkFBQSxPQURuRyxDQUFBO0FBQUEsRUFJQSxVQUFBLEdBQWEsZUFBQSxDQUFnQixZQUFoQixDQUpiLENBQUE7QUFBQSxFQUtBLGFBQUEsQ0FBYyxPQUFkLENBTEEsQ0FBQTtBQUFBLEVBT0EsR0FBQSxDQUFJLE9BQUosRUFBYyx3QkFBQSxHQUF1QixVQUF2QixHQUFtQyxLQUFqRCxDQVBBLENBQUE7QUFBQSxFQVFBLEdBQUEsQ0FBSSxPQUFKLEVBQWMsa0JBQUEsR0FBaUIsWUFBakIsR0FBK0IsS0FBN0MsQ0FSQSxDQUFBO0FBQUEsRUFVQSxtQkFBQSxHQUFzQjtBQUFBLElBQUMsWUFBQSxVQUFEO0FBQUEsSUFBYSxVQUFBLFFBQWI7QUFBQSxJQUF1QixnQkFBQSxjQUF2QjtHQVZ0QixDQUFBO0FBQUEsRUFZQSxVQUFBLEdBQWEsU0FBQyxNQUFELEVBQVMsUUFBVCxHQUFBO0FBQ1gsUUFBQSxXQUFBO0FBQUEsSUFBQSxHQUFBLENBQUksTUFBSixFQUFhLFdBQUEsR0FBVSxNQUF2QixDQUFBLENBQUE7QUFBQSxJQUNBLFdBQUEsR0FBYyxrQkFBQSxDQUFtQixNQUFuQixFQUEyQixVQUEzQixFQUF1QyxZQUF2QyxFQUFxRCxPQUFyRCxFQUE4RCxtQkFBOUQsRUFBbUYsWUFBWSxDQUFDLE9BQU8sQ0FBQyxPQUF4RyxDQURkLENBQUE7V0FFQSxhQUFBLENBQWMsTUFBZCxFQUFzQixXQUF0QixFQUFtQztBQUFBLE1BQUMsV0FBQSxTQUFEO0FBQUEsTUFBWSxhQUFBLFdBQVo7QUFBQSxNQUF5QixTQUFBLE9BQXpCO0tBQW5DLEVBQXNFLFFBQXRFLEVBSFc7RUFBQSxDQVpiLENBQUE7QUFBQSxFQWlCQSxPQUFBLEdBQVUsVUFBQSxDQUFXLFVBQVgsQ0FqQlYsQ0FBQTtBQUFBLEVBbUJBLE1BQUEsR0FBUyxlQUFBLENBQWdCLGNBQWhCLEVBQWdDLE9BQWhDLEVBQXlDLElBQXpDLENBbkJULENBQUE7QUFBQSxFQXFCQSxDQUFDLENBQUMsSUFBRixDQUFPLE9BQVAsRUFBZ0IsU0FBQyxNQUFELEdBQUE7V0FDZCxVQUFBLENBQVcsTUFBWCxFQUFtQixTQUFBLEdBQUE7YUFBTSxNQUFBLENBQU8sTUFBUCxFQUFOO0lBQUEsQ0FBbkIsRUFEYztFQUFBLENBQWhCLENBckJBLENBRGE7QUFBQSxDQWxOZixDQUFBOztBQUFBLFVBNE9BLEdBQWEsU0FBQyxHQUFELEdBQUE7QUFDWCxNQUFBLGdCQUFBO0FBQUEsRUFBQSxPQUFBLEdBQVUsQ0FBQyxDQUFDLEdBQUYsQ0FBTyxXQUFBLENBQVksR0FBWixDQUFQLEVBQXlCLFNBQUMsTUFBRCxHQUFBO1dBQVksSUFBSSxDQUFDLE9BQUwsQ0FBYSxHQUFiLEVBQWtCLE1BQWxCLEVBQVo7RUFBQSxDQUF6QixDQUFWLENBQUE7U0FDQSxPQUFBLEdBQVUsRUFBRSxDQUFDLE1BQUgsQ0FBVSxPQUFWLEVBQW1CLENBQUMsR0FBRCxDQUFuQixFQUZDO0FBQUEsQ0E1T2IsQ0FBQTs7QUFBQSxXQWdQQSxHQUFjLFNBQUMsWUFBRCxFQUFlLE9BQWYsRUFBd0IsSUFBeEIsR0FBQTtBQUNaLE1BQUEsaUlBQUE7QUFBQSxFQUFBLEdBQUEsQ0FBSSxNQUFKLEVBQVksaUJBQVosQ0FBQSxDQUFBO0FBQUEsRUFDQSxRQUNFLFlBQVksQ0FBQyxPQURmLEVBQUMsbUJBQUEsVUFBRCxFQUFhLHFCQUFBLFlBQWIsRUFBMkIsa0JBQUEsU0FBM0IsRUFBc0Msb0JBQUEsV0FBdEMsRUFBbUQsZ0JBQUEsT0FBbkQsRUFBNEQsb0JBQUEsV0FBNUQsRUFBeUUsZ0JBQUEsT0FEekUsQ0FBQTtBQUFBLEVBR0EsVUFBQSxHQUFhLGVBQUEsQ0FBZ0IsWUFBaEIsQ0FIYixDQUFBO0FBQUEsRUFJQSxPQUFBLEdBQVU7QUFBQSxJQUFDLFdBQUEsU0FBRDtBQUFBLElBQVksYUFBQSxXQUFaO0FBQUEsSUFBeUIsU0FBQSxPQUF6QjtHQUpWLENBQUE7QUFBQSxFQUtBLGFBQUEsQ0FBYyxPQUFkLENBTEEsQ0FBQTtBQUFBLEVBT0EsUUFBQSxHQUFXLFNBQUMsTUFBRCxHQUFBO0FBQ1QsUUFBQSxrQkFBQTtBQUFBLElBQUEsR0FBQSxDQUFJLE9BQUosRUFBYyxxQkFBQSxHQUFvQixNQUFwQixHQUE0QixvQkFBNUIsR0FBK0MsVUFBL0MsR0FBMkQscUJBQTNELEdBQStFLFlBQTdGLENBQUEsQ0FBQTtBQUFBLElBQ0EsS0FBQSxHQUFTLGVBQUEsQ0FBZ0IsTUFBaEIsRUFBd0IsVUFBeEIsRUFBb0MsWUFBcEMsRUFBa0QsT0FBbEQsQ0FEVCxDQUFBO0FBQUEsSUFFQSxXQUFBLEdBQWMsQ0FBQyxDQUFDLEdBQUYsQ0FBTSxLQUFOLEVBQWEsU0FBQyxDQUFELEdBQUE7YUFBTyxhQUFBLENBQWMsQ0FBZCxFQUFpQixNQUFqQixFQUF5QixPQUF6QixFQUFQO0lBQUEsQ0FBYixDQUZkLENBQUE7V0FHQSxDQUFDLE1BQUQsRUFBUyxLQUFULEVBQWdCLFdBQWhCLEVBSlM7RUFBQSxDQVBYLENBQUE7QUFBQSxFQWFBLE9BQUEsR0FBVSxVQUFBLENBQVcsVUFBWCxDQWJWLENBQUE7QUFBQSxFQWVBLGNBQUEsR0FBaUIsQ0FBQyxDQUFDLEdBQUYsQ0FBTSxPQUFOLEVBQWUsUUFBZixDQWZqQixDQUFBO0FBQUEsRUFpQkEsTUFBQSxHQUFTLGVBQUEsQ0FBZ0IsYUFBaEIsRUFBK0IsT0FBL0IsRUFBd0MsSUFBeEMsQ0FqQlQsQ0FBQTtBQUFBLEVBbUJBLENBQUMsQ0FBQyxJQUFGLENBQU8sY0FBUCxFQUF1QixTQUFDLElBQUQsR0FBQTtBQUNyQixRQUFBLDBCQUFBO0FBQUEsSUFEdUIsa0JBQVEsaUJBQU8scUJBQ3RDLENBQUE7V0FBQSxLQUFBLENBQU0sQ0FBQyxNQUFELEVBQVMsS0FBVCxFQUFnQixXQUFoQixDQUFOLEVBQW9DLFNBQUEsR0FBQTthQUFNLE1BQUEsQ0FBTyxNQUFQLEVBQU47SUFBQSxDQUFwQyxFQURxQjtFQUFBLENBQXZCLENBbkJBLENBRFk7QUFBQSxDQWhQZCxDQUFBOztBQUFBLGVBd1FBLEdBQWtCLFNBQUMsS0FBRCxFQUFRLE9BQVIsRUFBaUIsRUFBakIsR0FBQTtBQUNoQixNQUFBLGVBQUE7QUFBQSxFQUFBLFNBQUEsR0FBWSxFQUFFLENBQUMsTUFBSCxDQUFVLE9BQVYsQ0FBWixDQUFBO0FBQUEsRUFDQSxJQUFBLEdBQU8sU0FBQyxHQUFELEdBQUE7QUFDTCxJQUFBLFNBQUEsR0FBWSxDQUFDLENBQUMsT0FBRixDQUFVLFNBQVYsRUFBcUIsR0FBckIsQ0FBWixDQUFBO0FBQ0EsSUFBQSxJQUFHLFNBQVMsQ0FBQyxNQUFWLEtBQW9CLENBQXZCO0FBQ0UsTUFBQSxHQUFBLENBQUksTUFBSixFQUFhLFdBQUEsR0FBVSxLQUF2QixDQUFBLENBQUE7YUFDQSxFQUFBLENBQUEsRUFGRjtLQUZLO0VBQUEsQ0FEUCxDQUFBO1NBTUEsS0FQZ0I7QUFBQSxDQXhRbEIsQ0FBQTs7QUFBQSxLQWlSQSxHQUFRLFNBQUMsSUFBRCxFQUErQixFQUEvQixHQUFBO0FBQ04sTUFBQSx3Q0FBQTtBQUFBLEVBRFEsa0JBQVEsaUJBQU8scUJBQ3ZCLENBQUE7QUFBQSxFQUFBLENBQUMsQ0FBQyxJQUFGLENBQU8sV0FBUCxFQUFvQixTQUFDLENBQUQsR0FBQTtXQUFPLGNBQUEsQ0FBZSxDQUFmLEVBQVA7RUFBQSxDQUFwQixDQUFBLENBQUE7QUFBQSxFQUVBLElBQUEsR0FBTyxDQUFBLENBQUUsV0FBRixDQUNMLENBQUMsR0FESSxDQUNBLFNBQUMsQ0FBRCxHQUFBO1dBQU8sSUFBSSxDQUFDLE9BQUwsQ0FBYSxDQUFiLEVBQVA7RUFBQSxDQURBLENBRUwsQ0FBQyxNQUZJLENBQUEsQ0FHTCxDQUFDLE1BSEksQ0FHRyxRQUhILENBSUwsQ0FBQyxPQUpJLENBQUEsQ0FLTCxDQUFDLEtBTEksQ0FBQSxDQUZQLENBQUE7QUFTQSxFQUFBLElBQUcsSUFBSSxDQUFDLE1BQUwsR0FBYyxDQUFqQjtBQUNFLElBQUEsTUFBQSxHQUFTLGVBQUEsQ0FBZ0IsT0FBaEIsRUFBeUIsSUFBekIsRUFBK0IsRUFBL0IsQ0FBVCxDQUFBO1dBRUEsQ0FBQSxDQUFFLElBQUYsQ0FDRSxDQUFDLEdBREgsQ0FDTyxTQUFDLEdBQUQsR0FBQTthQUFTO1FBQUMsR0FBRCxFQUFNLFNBQUEsR0FBQTtpQkFBTSxNQUFBLENBQU8sR0FBUCxFQUFOO1FBQUEsQ0FBTjtRQUFUO0lBQUEsQ0FEUCxDQUVFLENBQUMsSUFGSCxDQUVRLFNBQUMsS0FBRCxHQUFBO0FBQ0osVUFBQSxPQUFBO0FBQUEsTUFETSxnQkFBSyxhQUNYLENBQUE7YUFBQSxlQUFBLENBQWdCLEdBQWhCLEVBQXFCLEVBQXJCLEVBREk7SUFBQSxDQUZSLEVBSEY7R0FBQSxNQUFBO1dBUUUsRUFBQSxDQUFBLEVBUkY7R0FWTTtBQUFBLENBalJSLENBQUE7O0FBQUEsTUFxU00sQ0FBQyxPQUFQLEdBQWlCO0FBQUEsRUFBQyxjQUFBLFlBQUQ7QUFBQSxFQUFlLGFBQUEsV0FBZjtDQXJTakIsQ0FBQSIsInNvdXJjZXNDb250ZW50IjpbIlwidXNlIHN0cmljdFwiXG5cbntsb2csIHByaW50T2JqfSA9IHJlcXVpcmUgJy4vdXRpbCdcbmNvbG9yID0gcmVxdWlyZSgnYW5zaS1jb2xvcicpLnNldFxuZnMgPSByZXF1aXJlICdmcydcbnBhdGggPSByZXF1aXJlICdwYXRoJ1xud2F0Y2ggPSByZXF1aXJlICdjaG9raWRhcidcbndyZW5jaCA9IHJlcXVpcmUgJ3dyZW5jaCdcbl8gPSByZXF1aXJlICdsb2Rhc2gnXG5wYXJzZVN0cmluZyA9IHJlcXVpcmUoJ3htbDJqcycpLnBhcnNlU3RyaW5nXG53b3JraW5nRGlyID0gcHJvY2Vzcy5jd2QoKVxuUnggPSByZXF1aXJlIFwicnhcIlxuXG5maW5kU291cmNlRmlsZXMgPSAoZnJvbSwgZXh0ZW5zaW9ucywgZXhjbHVkZXMsIGJhc2VEaXIpIC0+XG4gIHdyZW5jaC5yZWFkZGlyU3luY1JlY3Vyc2l2ZShmcm9tKVxuICAgIC5maWx0ZXIgKGYpIC0+XG4gICAgICBvcmlnaW5hbEZpbGUgPSBwYXRoLmpvaW4gZnJvbSwgZlxuICAgICAgaXNGaWxlID0gZnMuc3RhdFN5bmMob3JpZ2luYWxGaWxlKS5pc0ZpbGUoKVxuICAgICAgaXNJbmNsdWRlZCA9IHNob3VsZEluY2x1ZGUgZiwgaXNGaWxlLCBleHRlbnNpb25zLCBleGNsdWRlcywgYmFzZURpclxuICAgICAgaXNJbmNsdWRlZCBhbmQgaXNGaWxlXG4gICAgLm1hcCAoZikgLT4gcGF0aC5qb2luIGZyb20sIGZcblxuc2hvdWxkSW5jbHVkZSA9IChmLCBpc0ZpbGUsIGV4dGVuc2lvbnMsIGV4Y2x1ZGVzLCBiYXNlRGlyKSAtPlxuICAjVE9ETzogb25seSBhZGRzIHRoZSAuIHRvIHlvdSBmb3IgZXh0ZW5zaW9ucyBpZiBpdHMgbGVmdCBvZmZcbiAgZXh0ZW5zaW9ucyA9IGV4dGVuc2lvbnMubWFwIChleHQpIC0+IFwiLiN7ZXh0fVwiXG4gIGV4dCA9IHBhdGguZXh0bmFtZSBmXG4gIG1hdGNoZXNFeHRlbnNpb24gPSBub3QgaXNGaWxlIG9yIF8uY29udGFpbnMgZXh0ZW5zaW9ucywgZXh0XG4gIGF0Um9vdCA9IGlzRmlsZSBhbmQgZi5pbmRleE9mKHBhdGguc2VwKSA9PSAtMVxuICBleGNsdWRlZCA9IGlzRXhjbHVkZWRCeUNvbmZpZyBmLCBleGNsdWRlcywgYmFzZURpclxuICBtYXRjaGVzRXh0ZW5zaW9uIGFuZCBub3QgZXhjbHVkZWQgYW5kIG5vdCBhdFJvb3Rcblxud2l0aG91dFBhdGggPSAoZnJvbVBhdGgpIC0+XG4gIChpbnB1dCkgLT4gaW5wdXQucmVwbGFjZSBcIiN7ZnJvbVBhdGh9I3twYXRoLnNlcH1cIiwgJydcblxucHJlcGFyZUZpbGVXYXRjaGVyID0gKGZyb20sIGV4dGVuc2lvbnMsIGV4Y2x1ZGVzLCBpc0J1aWxkLCBmaWxlV2F0Y2hlclNldHRpbmdzLCBiYXNlRGlyKSAtPlxuICAjVE9ETzogbm8gbW9yZSBzeW5jIGNhbGxzXG4gIGZpbGVzICA9IGZpbmRTb3VyY2VGaWxlcyBmcm9tLCBleHRlbnNpb25zLCBleGNsdWRlcywgYmFzZURpclxuICBudW1iZXJPZkZpbGVzICA9IGZpbGVzLmxlbmd0aFxuICBmaXhQYXRoID0gd2l0aG91dFBhdGggZnJvbVxuXG4gIHNldHRpbmdzID1cbiAgICBpZ25vcmVkOiAoZmlsZSkgLT5cbiAgICAgIGlzRmlsZSA9IGZzLnN0YXRTeW5jKGZpbGUpLmlzRmlsZSgpXG4gICAgICBmID0gZml4UGF0aCBmaWxlXG4gICAgICBub3QgKHNob3VsZEluY2x1ZGUgZiwgaXNGaWxlLCBleHRlbnNpb25zLCBleGNsdWRlcywgYmFzZURpcilcbiAgICBwZXJzaXN0ZW50OiBub3QgaXNCdWlsZFxuXG4gIHdhdGNoU2V0dGluZ3MgPSBfLmV4dGVuZCBzZXR0aW5ncywgZmlsZVdhdGNoZXJTZXR0aW5nc1xuXG4gIG9ic2VydmFibGVGb3IgPSAoZXZlbnQpIC0+XG4gICAgUnguT2JzZXJ2YWJsZS5mcm9tRXZlbnQgd2F0Y2hlciwgZXZlbnRcblxuICBsb2cgXCJkZWJ1Z1wiLCBcInN0YXJ0aW5nIGZpbGUgd2F0Y2hlciBvbiBbWyAje2Zyb219IF1dIHVzZVBvbGxpbmc6ICN7d2F0Y2hTZXR0aW5ncy51c2VQb2xsaW5nfVwiXG5cbiAgd2F0Y2hlciA9IHdhdGNoLndhdGNoIGZyb20sIHdhdGNoU2V0dGluZ3NcbiAgYWRkcyA9IG9ic2VydmFibGVGb3IgXCJhZGRcIlxuICBjaGFuZ2VzID0gb2JzZXJ2YWJsZUZvciBcImNoYW5nZVwiXG4gIHVubGlua3MgPSBvYnNlcnZhYmxlRm9yIFwidW5saW5rXCJcbiAgZXJyb3JzID0gKG9ic2VydmFibGVGb3IgXCJlcnJvclwiKS5zZWxlY3RNYW55IChlKSAtPiBSeC5PYnNlcnZhYmxlLnRocm93IGVcbiAge251bWJlck9mRmlsZXMsIGFkZHMsIGNoYW5nZXMsIHVubGlua3MsIGVycm9yc31cblxuc3RhcnRXYXRjaGluZyA9IChcbiAgZnJvbSxcbiAge251bWJlck9mRmlsZXMsIGFkZHMsIGNoYW5nZXMsIHVubGlua3MsIGVycm9yc30sXG4gIG9wdGlvbnMsXG4gIGNiKSAtPlxuXG4gIGZyb21Tb3VyY2UgPSAob2JzKSAtPlxuICAgIG9icy5tZXJnZShlcnJvcnMpXG5cbiAgaW5pdGlhbENvcHkgPSBmcm9tU291cmNlKGFkZHMpLnRha2UobnVtYmVyT2ZGaWxlcylcblxuICBpbml0aWFsQ29weS5zdWJzY3JpYmUoXG4gICAgKGYpIC0+XG4gICAgICBjb3B5RmlsZSBmLCBmcm9tLCBvcHRpb25zXG4gICAgKGUpIC0+XG4gICAgICBsb2cgXCJ3YXJuXCIsIFwiRmlsZSB3YXRjaGluZyBlcnJvcjogI3tlfVwiXG4gICAgICBjYigpIGlmIGNiXG4gICAgKCkgLT5cbiAgICAgIG9uZ29pbmdDb3B5ID0gZnJvbVNvdXJjZShhZGRzLm1lcmdlIGNoYW5nZXMpXG4gICAgICBvbmdvaW5nQ29weS5zdWJzY3JpYmUoXG4gICAgICAgIChmKSAtPiBjb3B5RmlsZSBmLCBmcm9tLCBvcHRpb25zXG4gICAgICAgIChlKSAtPiBsb2cgXCJ3YXJuXCIsIFwiRmlsZSB3YXRjaGluZyBlcnJvcjogI3tlfVwiXG4gICAgICApXG4gICAgICBsb2cgXCJpbmZvXCIsIFwiZmluaXNoZWQgaW5pdGlhbCBjb3B5IGZvcjogI3tmcm9tfVwiXG4gICAgICBjYigpIGlmIGNiXG4gIClcblxuICBkZWxldGVzID0gZnJvbVNvdXJjZSh1bmxpbmtzKVxuXG4gIGRlbGV0ZXMuc3Vic2NyaWJlKFxuICAgIChmKSAtPlxuICAgICAgb3V0RmlsZSA9IHRyYW5zZm9ybVBhdGggZiwgZnJvbSwgb3B0aW9uc1xuICAgICAgZGVsZXRlRmlsZSBvdXRGaWxlXG4gICAgKGUpIC0+IGxvZyBcIndhcm5cIiwgXCJGaWxlIHdhdGNoaW5nIGVycm9yczogI3tlfVwiXG4gIClcblxuY29weUZpbGUgPSAoZmlsZSwgZnJvbSwgb3B0aW9ucykgLT5cbiAgZnMucmVhZEZpbGUgZmlsZSwgKGVyciwgZGF0YSkgLT5cbiAgICBpZiBlcnJcbiAgICAgIGxvZyBcImVycm9yXCIsIFwiRXJyb3IgcmVhZGluZyBmaWxlIFtbICN7ZmlsZX0gXV0sICN7ZXJyfVwiXG4gICAgICByZXR1cm5cblxuICAgIG91dEZpbGUgPSB0cmFuc2Zvcm1QYXRoIGZpbGUsIGZyb20sIG9wdGlvbnNcblxuICAgIGRpcm5hbWUgPSBwYXRoLmRpcm5hbWUgb3V0RmlsZVxuICAgIHVubGVzcyBmcy5leGlzdHNTeW5jIGRpcm5hbWVcbiAgICAgIHdyZW5jaC5ta2RpclN5bmNSZWN1cnNpdmUgZGlybmFtZSwgMG8wNzc3XG5cbiAgICBmcy53cml0ZUZpbGUgb3V0RmlsZSwgZGF0YSwgKGVycikgLT5cbiAgICAgIGlmIGVyclxuICAgICAgICBsb2cgXCJlcnJvclwiLCBcIkVycm9yIHJlYWRpbmcgZmlsZSBbWyAje2ZpbGV9IF1dLCAje2Vycn1cIlxuICAgICAgZWxzZVxuICAgICAgICBsb2cgXCJzdWNjZXNzXCIsIFwiRmlsZSBjb3BpZWQgdG8gZGVzdGluYXRpb24gW1sgI3tvdXRGaWxlfSBdXSBmcm9tIFtbICN7ZmlsZX0gXV1cIlxuXG5kZWxldGVGaWxlU3luYyA9IChmaWxlKSAtPlxuICBpZiBmcy5leGlzdHNTeW5jIGZpbGVcbiAgICBmcy51bmxpbmtTeW5jIGZpbGVcbiAgICBsb2cgXCJzdWNjZXNzXCIsIFwiRmlsZSBbWyAje2ZpbGV9IF1dIGRlbGV0ZWQuXCJcblxuZGVsZXRlRmlsZSA9IChmaWxlKSAtPlxuICBmcy5leGlzdHMgZmlsZSwgKGV4aXN0cykgLT5cbiAgICBpZiBleGlzdHNcbiAgICAgIGZzLnVubGluayBmaWxlLCAoZXJyKSAtPlxuICAgICAgICBpZiBlcnJcbiAgICAgICAgICBsb2cgXCJlcnJvclwiLCBcIkVycm9yIGRlbGV0aW5nIGZpbGUgW1sgI3tmaWxlfSBdXSwgI3tlcnJ9XCJcbiAgICAgICAgZWxzZVxuICAgICAgICAgIGxvZyBcInN1Y2Nlc3NcIiwgXCJGaWxlIFtbICN7ZmlsZX0gXV0gZGVsZXRlZC5cIlxuXG5kZWxldGVEaXJlY3RvcnkgPSAoZGlyLCBjYikgLT5cbiAgaWYgZnMuZXhpc3RzU3luYyBkaXJcbiAgICBmcy5ybWRpciBkaXIsIChlcnIpIC0+XG4gICAgICBpZiBlcnI/LmNvZGUgaXMgbm90IFwiRU5PVEVNUFRZXCJcbiAgICAgICAgbG9nIFwiZXJyb3JcIiwgXCJVbmFibGUgdG8gZGVsZXRlIGRpcmVjdG9yeSBbWyAje2Rpcn0gXV1cIlxuICAgICAgICBsb2cgXCJlcnJvclwiLCBlcnJcbiAgICAgIGVsc2VcbiAgICAgICAgbG9nIFwiaW5mb1wiLCBcIkRlbGV0ZWQgZW1wdHkgZGlyZWN0b3J5IFtbICN7ZGlyfSBdXVwiXG4gICAgICBjYigpIGlmIGNiXG4gIGVsc2UgY2IoKSBpZiBjYlxuXG53aXRob3V0QmFzZURpciA9ICh0ZXN0UGF0aCwgYmFzZURpcikgLT5cbiAgYmFzZURpciA9IGlmIChiYXNlRGlyIGFuZCBiYXNlRGlyLmxlbmd0aCkgdGhlbiBwYXRoLmpvaW4oYmFzZURpciwgXCIvXCIpIGVsc2UgYmFzZURpclxuICBjd2QgPSBwcm9jZXNzLmN3ZCgpXG4gIG5ld1BhdGggPSB0ZXN0UGF0aC5yZXBsYWNlKGN3ZCwgXCJcIilcbiAgc3RhcnQgPSBNYXRoLm1heChuZXdQYXRoLmluZGV4T2YoYmFzZURpciksIDApXG4gIG5ld1BhdGggPSBuZXdQYXRoLnN1YnN0cmluZyhzdGFydClcbiAgcmV0dXJuVmFsID0gbmV3UGF0aC5yZXBsYWNlKGJhc2VEaXIgb3IgXCJcIiwgXCJcIikucmVwbGFjZSgvXlxcL3xeXFxcXC8sIFwiXCIpXG4gIHJldHVybiByZXR1cm5WYWxcblxudHJhbnNmb3JtUGF0aCA9IChmaWxlLCBmcm9tLCB7c291cmNlRGlyLCBjb252ZW50aW9ucywgYmFzZURpcn0pIC0+XG4gIG5ld0ZpbGVQYXRoID0gd2l0aG91dEJhc2VEaXIgZmlsZSwgYmFzZURpclxuICBuZXdTb3VyY2VEaXIgPSB3aXRob3V0QmFzZURpciBzb3VyY2VEaXIsIGJhc2VEaXJcbiAgZml4UGF0aCA9IHdpdGhvdXRQYXRoIGZyb21cbiAgbmV3RmlsZSA9IGZpeFBhdGggbmV3RmlsZVBhdGhcbiAgcmVzdWx0ID0gXy5yZWR1Y2UoY29udmVudGlvbnMsIChhY2MsIHttYXRjaCwgdHJhbnNmb3JtfSkgLT5cbiAgICBleHQgPSBwYXRoLmV4dG5hbWUgYWNjXG4gICAgaWYgbWF0Y2ggYWNjLCBleHQsIGxvZyB0aGVuIHRyYW5zZm9ybSBhY2MsIHBhdGgsIGxvZyBlbHNlIGFjY1xuICAsIG5ld0ZpbGUpXG4gIHJlc3VsdCA9IHJlc3VsdC5yZXBsYWNlKG5ld1NvdXJjZURpciwgXCJcIilcbiAgZmluYWxQYXRoID0gcGF0aC5qb2luIGJhc2VEaXIgb3IgXCJcIiwgbmV3U291cmNlRGlyLCByZXN1bHRcbiAgZmluYWxQYXRoXG5cbm1hdGNoZXNXaXRob3V0QmFzZURpciA9ICh0ZXN0UGF0aCwgYmFzZURpciwgcHJlZGljYXRlKSAtPlxuICBuZXdUZXN0ID0gd2l0aG91dEJhc2VEaXIgdGVzdFBhdGgsIGJhc2VEaXJcbiAgc2hvdWxkRXhjbHVkZSA9IHByZWRpY2F0ZShuZXdUZXN0KVxuICByZXR1cm4gc2hvdWxkRXhjbHVkZVxuXG5leGNsdWRlU3RyYXRlZ2llcyA9XG4gIHN0cmluZzpcbiAgICBpZGVudGl0eTogXy5pc1N0cmluZ1xuICAgIHByZWRpY2F0ZTogKGV4LCB0ZXN0UGF0aCwgYmFzZURpcikgLT4gIG1hdGNoZXNXaXRob3V0QmFzZURpciB0ZXN0UGF0aCwgYmFzZURpciwgKG5ld1BhdGgpIC0+IG5ld1BhdGguaW5kZXhPZihleCkgPT0gMFxuICByZWdleDpcbiAgICBpZGVudGl0eTogXy5pc1JlZ0V4cFxuICAgIHByZWRpY2F0ZTogKGV4LCB0ZXN0UGF0aCwgYmFzZURpcikgLT4gbWF0Y2hlc1dpdGhvdXRCYXNlRGlyIHRlc3RQYXRoLCBiYXNlRGlyLCAobmV3UGF0aCkgLT4gZXgudGVzdCBuZXdQYXRoXG5cbmlzRXhjbHVkZWRCeUNvbmZpZyA9ICh0ZXN0UGF0aCwgZXhjbHVkZXMsIGJhc2VEaXIpIC0+XG4gIG9mVHlwZSA9IChtZXRob2QpIC0+XG4gICAgZXhjbHVkZXMuZmlsdGVyIChmKSAtPiBtZXRob2QoZilcblxuICBfLmFueSBleGNsdWRlU3RyYXRlZ2llcywgKHtpZGVudGl0eSwgcHJlZGljYXRlfSkgLT5cbiAgICBfLmFueSAob2ZUeXBlIGlkZW50aXR5KSwgKGV4KSAtPiBwcmVkaWNhdGUgZXgsIHRlc3RQYXRoLCBiYXNlRGlyXG5cbnBhcnNlWG1sID0gKGNvbnRlbnQpIC0+XG4gIHJlc3VsdCA9IHt9XG4gIHBhcnNlU3RyaW5nIGNvbnRlbnQsIChlcnIsIG91dHB1dCkgLT5cbiAgICByZXN1bHQgPSBvdXRwdXRcbiAgcmVzdWx0XG5cbmZpbmRCb3R0bGVzID0gKHNvdXJjZURpcikgLT5cbiAgbGlua3NGaWxlID0gcGF0aC5qb2luIHNvdXJjZURpciwgXCIubGlua3NcIlxuICBpZiBmcy5leGlzdHNTeW5jIGxpbmtzRmlsZVxuICAgIGVuY29kaW5nID0gXCJ1dGY4XCJcbiAgICBkYXRhID0gZnMucmVhZEZpbGVTeW5jIGxpbmtzRmlsZSwge2VuY29kaW5nfVxuICAgIGxpbmtzWG1sID0gcGFyc2VYbWwgZGF0YVxuICAgIGJvdHRsZXMgPSBsaW5rc1htbD8ubGlua3M/LmluY2x1ZGUgfHwgW11cbiAgICB1bmxlc3MgYm90dGxlcyBhbmQgXy5pc0FycmF5IGJvdHRsZXNcbiAgICAgIGxvZyBcImVycm9yXCIsIFwiLmxpbmtzIGZpbGUgbm90IHZhbGlkXCJcbiAgICAgIHJldHVyblxuICAgIGJvdHRsZXMgPSBfLm1hcChib3R0bGVzLCAoYm90dGxlKS0+IGJvdHRsZS5yZXBsYWNlKC9cXFxcfFxcLy8sIHBhdGguc2VwKSlcbiAgICBib3R0bGVzXG4gIGVsc2VcbiAgICBbXVxuXG5idWlsZEV4dGVuc2lvbnMgPSAoY29uZmlnKSAtPlxuICB7Y29weSwgamF2YXNjcmlwdCwgY3NzfSA9IGNvbmZpZy5leHRlbnNpb25zXG4gIGV4dGVuc2lvbnMgPSBfLnVuaW9uIGNvcHksIGphdmFzY3JpcHQsIGNzc1xuXG5zZXRXb3JraW5nRGlyID0gKHZhbCkgLT5cbiAgd29ya2luZ0RpciA9IHZhbCBvciBwcm9jZXNzLmN3ZCgpXG5cbmltcG9ydEFzc2V0cyA9IChtaW1vc2FDb25maWcsIG9wdGlvbnMsIG5leHQpIC0+XG4gIGxvZyBcImluZm9cIiwgXCJpbXBvcnRpbmcgYXNzZXRzXCJcbiAge2V4Y2x1ZGVQYXRocywgc291cmNlRGlyLCBjb21waWxlZERpciwgaXNCdWlsZCwgY29udmVudGlvbnMsIHVzZVBvbGxpbmcsIGludGVydmFsLCBiaW5hcnlJbnRlcnZhbCwgYmFzZURpcn0gPVxuICAgIG1pbW9zYUNvbmZpZy5mdWJ1bXZjXG5cbiAgZXh0ZW5zaW9ucyA9IGJ1aWxkRXh0ZW5zaW9ucyBtaW1vc2FDb25maWdcbiAgc2V0V29ya2luZ0RpciBiYXNlRGlyXG5cbiAgbG9nIFwiZGVidWdcIiwgXCJhbGxvd2VkIGV4dGVuc2lvbnMgW1sgI3tleHRlbnNpb25zfSBdXVwiXG4gIGxvZyBcImRlYnVnXCIsIFwiZXhjbHVkZVBhdGhzIFtbICN7ZXhjbHVkZVBhdGhzfSBdXVwiXG5cbiAgZmlsZVdhdGNoZXJTZXR0aW5ncyA9IHt1c2VQb2xsaW5nLCBpbnRlcnZhbCwgYmluYXJ5SW50ZXJ2YWx9XG5cbiAgaW1wb3J0RnJvbSA9ICh0YXJnZXQsIGNhbGxiYWNrKSAtPlxuICAgIGxvZyBcImluZm9cIiwgXCJ3YXRjaGluZyAje3RhcmdldH1cIlxuICAgIGZpbGVXYXRjaGVyID0gcHJlcGFyZUZpbGVXYXRjaGVyIHRhcmdldCwgZXh0ZW5zaW9ucywgZXhjbHVkZVBhdGhzLCBpc0J1aWxkLCBmaWxlV2F0Y2hlclNldHRpbmdzLCBtaW1vc2FDb25maWcuZnVidW12Yy5iYXNlRGlyXG4gICAgc3RhcnRXYXRjaGluZyB0YXJnZXQsIGZpbGVXYXRjaGVyLCB7c291cmNlRGlyLCBjb252ZW50aW9ucywgYmFzZURpcn0sIGNhbGxiYWNrXG5cbiAgdGFyZ2V0cyA9IGdldFRhcmdldHMgd29ya2luZ0RpclxuXG4gIGZpbmlzaCA9IHRyYWNrQ29tcGxldGlvbiBcImltcG9ydEFzc2V0c1wiLCB0YXJnZXRzLCBuZXh0XG5cbiAgXy5lYWNoIHRhcmdldHMsICh0YXJnZXQpIC0+XG4gICAgaW1wb3J0RnJvbSB0YXJnZXQsICgpIC0+IGZpbmlzaCh0YXJnZXQpXG4gIHJldHVyblxuXG5nZXRUYXJnZXRzID0gKGRpcikgLT5cbiAgYm90dGxlcyA9IF8ubWFwIChmaW5kQm90dGxlcyBkaXIpLCAoYm90dGxlKSAtPiBwYXRoLnJlc29sdmUgZGlyLCBib3R0bGVcbiAgdGFyZ2V0cyA9IFtdLmNvbmNhdCBib3R0bGVzLCBbZGlyXVxuXG5jbGVhbkFzc2V0cyA9IChtaW1vc2FDb25maWcsIG9wdGlvbnMsIG5leHQpIC0+XG4gIGxvZyBcImluZm9cIiwgXCJjbGVhbmluZyBhc3NldHNcIlxuICB7ZXh0ZW5zaW9ucywgZXhjbHVkZVBhdGhzLCBzb3VyY2VEaXIsIGNvbXBpbGVkRGlyLCBpc0J1aWxkLCBjb252ZW50aW9ucywgYmFzZURpcn0gPVxuICAgIG1pbW9zYUNvbmZpZy5mdWJ1bXZjXG4gIGV4dGVuc2lvbnMgPSBidWlsZEV4dGVuc2lvbnMgbWltb3NhQ29uZmlnXG4gIG9wdGlvbnMgPSB7c291cmNlRGlyLCBjb252ZW50aW9ucywgYmFzZURpcn1cbiAgc2V0V29ya2luZ0RpciBiYXNlRGlyXG5cbiAgZmlsZXNGb3IgPSAodGFyZ2V0KSAtPlxuICAgIGxvZyBcImRlYnVnXCIsIFwiZmluZGluZyBmaWxlcyBmb3I6ICN7dGFyZ2V0fSB3aXRoIGV4dGVuc2lvbnM6ICN7ZXh0ZW5zaW9uc30gYW5kIGV4Y2x1ZGVQYXRoczogI3tleGNsdWRlUGF0aHN9XCJcbiAgICBmaWxlcyAgPSBmaW5kU291cmNlRmlsZXMgdGFyZ2V0LCBleHRlbnNpb25zLCBleGNsdWRlUGF0aHMsIGJhc2VEaXJcbiAgICBvdXRwdXRGaWxlcyA9IF8ubWFwIGZpbGVzLCAoZikgLT4gdHJhbnNmb3JtUGF0aCBmLCB0YXJnZXQsIG9wdGlvbnNcbiAgICBbdGFyZ2V0LCBmaWxlcywgb3V0cHV0RmlsZXNdXG5cbiAgdGFyZ2V0cyA9IGdldFRhcmdldHMgd29ya2luZ0RpclxuXG4gIGFsbFRhcmdldEZpbGVzID0gXy5tYXAgdGFyZ2V0cywgZmlsZXNGb3JcblxuICBmaW5pc2ggPSB0cmFja0NvbXBsZXRpb24gXCJjbGVhbkFzc2V0c1wiLCB0YXJnZXRzLCBuZXh0XG5cbiAgXy5lYWNoIGFsbFRhcmdldEZpbGVzLCAoW3RhcmdldCwgZmlsZXMsIG91dHB1dEZpbGVzXSkgLT5cbiAgICBjbGVhbiBbdGFyZ2V0LCBmaWxlcywgb3V0cHV0RmlsZXNdLCAoKSAtPiBmaW5pc2godGFyZ2V0KVxuICByZXR1cm5cblxudHJhY2tDb21wbGV0aW9uID0gKHRpdGxlLCBpbml0aWFsLCBjYikgLT5cbiAgcmVtYWluaW5nID0gW10uY29uY2F0IGluaXRpYWxcbiAgZG9uZSA9IChkaXIpIC0+XG4gICAgcmVtYWluaW5nID0gXy53aXRob3V0IHJlbWFpbmluZywgZGlyXG4gICAgaWYgcmVtYWluaW5nLmxlbmd0aCA9PSAwXG4gICAgICBsb2cgXCJpbmZvXCIsIFwiZmluaXNoZWQgI3t0aXRsZX1cIlxuICAgICAgY2IoKVxuICBkb25lXG5cbmNsZWFuID0gKFt0YXJnZXQsIGZpbGVzLCBvdXRwdXRGaWxlc10sIGNiKSAtPlxuICBfLmVhY2ggb3V0cHV0RmlsZXMsIChmKSAtPiBkZWxldGVGaWxlU3luYyBmXG5cbiAgZGlycyA9IF8gb3V0cHV0RmlsZXNcbiAgICAubWFwIChmKSAtPiBwYXRoLmRpcm5hbWUgZlxuICAgIC51bmlxdWUoKVxuICAgIC5zb3J0QnkgXCJsZW5ndGhcIlxuICAgIC5yZXZlcnNlKClcbiAgICAudmFsdWUoKVxuXG4gIGlmIGRpcnMubGVuZ3RoID4gMFxuICAgIGZpbmlzaCA9IHRyYWNrQ29tcGxldGlvbiBcImNsZWFuXCIsIGRpcnMsIGNiXG5cbiAgICBfIGRpcnNcbiAgICAgIC5tYXAgKGRpcikgLT4gW2RpciwgKCkgLT4gZmluaXNoKGRpcildXG4gICAgICAuZWFjaCAoW2RpciwgY2JdKSAtPlxuICAgICAgICBkZWxldGVEaXJlY3RvcnkgZGlyLCBjYlxuICBlbHNlXG4gICAgY2IoKVxuXG5tb2R1bGUuZXhwb3J0cyA9IHtpbXBvcnRBc3NldHMsIGNsZWFuQXNzZXRzfVxuIl19 diff --git a/lib/index.js b/lib/index.js index 1b1d489..8e358c2 100644 --- a/lib/index.js +++ b/lib/index.js @@ -8,7 +8,11 @@ fubuImport = require('./fubu-import'); scaffolding = require('./scaffolding'); registration = function(mimosaConfig, register) { - register(['preBuild'], 'init', fubuImport.importAssets); + mimosaConfig.log["info"]("setting up fubumvc"); + scaffolding.setupFileSystemWithConfig(mimosaConfig); + register(['preBuild'], 'init', function(mimosaConfig, options, next) { + return fubuImport.importAssets(mimosaConfig, options, next); + }); return register(['postClean'], 'init', fubuImport.cleanAssets); }; @@ -29,4 +33,4 @@ module.exports = { validate: config.validate }; -//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiL1VzZXJzL3NtaXRobS9kZXYvbWltb3NhLWZ1YnVtdmMvbGliL2luZGV4LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiL1VzZXJzL3NtaXRobS9kZXYvbWltb3NhLWZ1YnVtdmMvc3JjL2luZGV4LmNvZmZlZSJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxZQUFBLENBQUE7QUFBQSxJQUFBLDhEQUFBOztBQUFBLE1BRUEsR0FBUyxPQUFBLENBQVEsVUFBUixDQUZULENBQUE7O0FBQUEsVUFHQSxHQUFhLE9BQUEsQ0FBUSxlQUFSLENBSGIsQ0FBQTs7QUFBQSxXQUlBLEdBQWMsT0FBQSxDQUFRLGVBQVIsQ0FKZCxDQUFBOztBQUFBLFlBTUEsR0FBZSxTQUFDLFlBQUQsRUFBZSxRQUFmLEdBQUE7QUFDYixFQUFBLFFBQUEsQ0FBUyxDQUFDLFVBQUQsQ0FBVCxFQUF1QixNQUF2QixFQUErQixVQUFVLENBQUMsWUFBMUMsQ0FBQSxDQUFBO1NBQ0EsUUFBQSxDQUFTLENBQUMsV0FBRCxDQUFULEVBQXdCLE1BQXhCLEVBQWdDLFVBQVUsQ0FBQyxXQUEzQyxFQUZhO0FBQUEsQ0FOZixDQUFBOztBQUFBLGVBVUEsR0FBa0IsU0FBQyxPQUFELEVBQVUsY0FBVixHQUFBO0FBQ2hCLEVBQUEsT0FDRSxDQUFDLE9BREgsQ0FDVyxXQURYLENBRUUsQ0FBQyxXQUZILENBRWUsd0RBRmYsQ0FHRSxDQUFDLE1BSEgsQ0FHVSxTQUFDLElBQUQsR0FBQTtXQUNOLFdBQVcsQ0FBQyxlQUFaLENBQTRCLElBQTVCLEVBQWtDLGNBQWxDLEVBRE07RUFBQSxDQUhWLENBQUEsQ0FBQTtTQUtBLE9BQ0UsQ0FBQyxPQURILENBQ1csWUFEWCxDQUVFLENBQUMsV0FGSCxDQUVlLGlEQUZmLENBR0UsQ0FBQyxNQUhILENBR1UsU0FBQyxJQUFELEdBQUE7V0FDTixXQUFXLENBQUMsZUFBWixDQUE0QixJQUE1QixFQUFrQyxjQUFsQyxFQURNO0VBQUEsQ0FIVixFQU5nQjtBQUFBLENBVmxCLENBQUE7O0FBQUEsTUFzQk0sQ0FBQyxPQUFQLEdBQ0U7QUFBQSxFQUFBLFlBQUEsRUFBaUIsWUFBakI7QUFBQSxFQUNBLGVBQUEsRUFBaUIsZUFEakI7QUFBQSxFQUVBLFFBQUEsRUFBaUIsTUFBTSxDQUFDLFFBRnhCO0FBQUEsRUFHQSxXQUFBLEVBQWlCLE1BQU0sQ0FBQyxXQUh4QjtBQUFBLEVBSUEsUUFBQSxFQUFpQixNQUFNLENBQUMsUUFKeEI7Q0F2QkYsQ0FBQSIsInNvdXJjZXNDb250ZW50IjpbIlwidXNlIHN0cmljdFwiXG5cbmNvbmZpZyA9IHJlcXVpcmUgJy4vY29uZmlnJ1xuZnVidUltcG9ydCA9IHJlcXVpcmUgJy4vZnVidS1pbXBvcnQnXG5zY2FmZm9sZGluZyA9IHJlcXVpcmUgJy4vc2NhZmZvbGRpbmcnXG5cbnJlZ2lzdHJhdGlvbiA9IChtaW1vc2FDb25maWcsIHJlZ2lzdGVyKSAtPlxuICByZWdpc3RlciBbJ3ByZUJ1aWxkJ10sICdpbml0JywgZnVidUltcG9ydC5pbXBvcnRBc3NldHNcbiAgcmVnaXN0ZXIgWydwb3N0Q2xlYW4nXSwgJ2luaXQnLCBmdWJ1SW1wb3J0LmNsZWFuQXNzZXRzXG5cbnJlZ2lzdGVyQ29tbWFuZCA9IChwcm9ncmFtLCByZXRyaWV2ZUNvbmZpZykgLT5cbiAgcHJvZ3JhbVxuICAgIC5jb21tYW5kKCdmdWJ1OmluaXQnKVxuICAgIC5kZXNjcmlwdGlvbihcImJvd2VyLmpzb24gYW5kIG1pbW9zYS1jb25maWcsICdjb2ZmZWUnIGZsYWcgZm9yIGNvZmZlZVwiKVxuICAgIC5hY3Rpb24gKGFyZ3MpIC0+XG4gICAgICBzY2FmZm9sZGluZy5zZXR1cEZpbGVTeXN0ZW0gYXJncywgcmV0cmlldmVDb25maWdcbiAgcHJvZ3JhbVxuICAgIC5jb21tYW5kKCdmdWJ1OnJlc2V0JylcbiAgICAuZGVzY3JpcHRpb24oXCJybSAtcmYgb24gYXNzZXRzIGFuZCBwdWJsaWMgdGhlbiBydW5zIGZ1YnU6aW5pdFwiKVxuICAgIC5hY3Rpb24gKGFyZ3MpIC0+XG4gICAgICBzY2FmZm9sZGluZy5yZXNldEZpbGVTeXN0ZW0gYXJncywgcmV0cmlldmVDb25maWdcblxubW9kdWxlLmV4cG9ydHMgPVxuICByZWdpc3RyYXRpb246ICAgIHJlZ2lzdHJhdGlvblxuICByZWdpc3RlckNvbW1hbmQ6IHJlZ2lzdGVyQ29tbWFuZFxuICBkZWZhdWx0czogICAgICAgIGNvbmZpZy5kZWZhdWx0c1xuICBwbGFjZWhvbGRlcjogICAgIGNvbmZpZy5wbGFjZWhvbGRlclxuICB2YWxpZGF0ZTogICAgICAgIGNvbmZpZy52YWxpZGF0ZVxuIl19 +//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiL21udC9SZXNvdXJjZXMvUHJvamVjdHMvbWltb3NhLWZ1YnVtdmMvbGliL2luZGV4LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiL21udC9SZXNvdXJjZXMvUHJvamVjdHMvbWltb3NhLWZ1YnVtdmMvc3JjL2luZGV4LmNvZmZlZSJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxZQUFBLENBQUE7QUFBQSxJQUFBLDhEQUFBOztBQUFBLE1BRUEsR0FBUyxPQUFBLENBQVEsVUFBUixDQUZULENBQUE7O0FBQUEsVUFHQSxHQUFhLE9BQUEsQ0FBUSxlQUFSLENBSGIsQ0FBQTs7QUFBQSxXQUlBLEdBQWMsT0FBQSxDQUFRLGVBQVIsQ0FKZCxDQUFBOztBQUFBLFlBTUEsR0FBZSxTQUFDLFlBQUQsRUFBZSxRQUFmLEdBQUE7QUFDYixFQUFBLFlBQVksQ0FBQyxHQUFJLENBQUEsTUFBQSxDQUFqQixDQUF5QixvQkFBekIsQ0FBQSxDQUFBO0FBQUEsRUFDQSxXQUFXLENBQUMseUJBQVosQ0FBc0MsWUFBdEMsQ0FEQSxDQUFBO0FBQUEsRUFFQSxRQUFBLENBQVMsQ0FBQyxVQUFELENBQVQsRUFBdUIsTUFBdkIsRUFBK0IsU0FBQyxZQUFELEVBQWUsT0FBZixFQUF3QixJQUF4QixHQUFBO1dBQzdCLFVBQVUsQ0FBQyxZQUFYLENBQXdCLFlBQXhCLEVBQXNDLE9BQXRDLEVBQStDLElBQS9DLEVBRDZCO0VBQUEsQ0FBL0IsQ0FGQSxDQUFBO1NBSUEsUUFBQSxDQUFTLENBQUMsV0FBRCxDQUFULEVBQXdCLE1BQXhCLEVBQWdDLFVBQVUsQ0FBQyxXQUEzQyxFQUxhO0FBQUEsQ0FOZixDQUFBOztBQUFBLGVBYUEsR0FBa0IsU0FBQyxPQUFELEVBQVUsY0FBVixHQUFBO0FBQ2hCLEVBQUEsT0FDRSxDQUFDLE9BREgsQ0FDVyxXQURYLENBRUUsQ0FBQyxXQUZILENBRWUsd0RBRmYsQ0FHRSxDQUFDLE1BSEgsQ0FHVSxTQUFDLElBQUQsR0FBQTtXQUNOLFdBQVcsQ0FBQyxlQUFaLENBQTRCLElBQTVCLEVBQWtDLGNBQWxDLEVBRE07RUFBQSxDQUhWLENBQUEsQ0FBQTtTQUtBLE9BQ0UsQ0FBQyxPQURILENBQ1csWUFEWCxDQUVFLENBQUMsV0FGSCxDQUVlLGlEQUZmLENBR0UsQ0FBQyxNQUhILENBR1UsU0FBQyxJQUFELEdBQUE7V0FDTixXQUFXLENBQUMsZUFBWixDQUE0QixJQUE1QixFQUFrQyxjQUFsQyxFQURNO0VBQUEsQ0FIVixFQU5nQjtBQUFBLENBYmxCLENBQUE7O0FBQUEsTUF5Qk0sQ0FBQyxPQUFQLEdBQ0U7QUFBQSxFQUFBLFlBQUEsRUFBaUIsWUFBakI7QUFBQSxFQUNBLGVBQUEsRUFBaUIsZUFEakI7QUFBQSxFQUVBLFFBQUEsRUFBaUIsTUFBTSxDQUFDLFFBRnhCO0FBQUEsRUFHQSxXQUFBLEVBQWlCLE1BQU0sQ0FBQyxXQUh4QjtBQUFBLEVBSUEsUUFBQSxFQUFpQixNQUFNLENBQUMsUUFKeEI7Q0ExQkYsQ0FBQSIsInNvdXJjZXNDb250ZW50IjpbIlwidXNlIHN0cmljdFwiXG5cbmNvbmZpZyA9IHJlcXVpcmUgJy4vY29uZmlnJ1xuZnVidUltcG9ydCA9IHJlcXVpcmUgJy4vZnVidS1pbXBvcnQnXG5zY2FmZm9sZGluZyA9IHJlcXVpcmUgJy4vc2NhZmZvbGRpbmcnXG5cbnJlZ2lzdHJhdGlvbiA9IChtaW1vc2FDb25maWcsIHJlZ2lzdGVyKSAtPlxuICBtaW1vc2FDb25maWcubG9nW1wiaW5mb1wiXSBcInNldHRpbmcgdXAgZnVidW12Y1wiXG4gIHNjYWZmb2xkaW5nLnNldHVwRmlsZVN5c3RlbVdpdGhDb25maWcgbWltb3NhQ29uZmlnXG4gIHJlZ2lzdGVyIFsncHJlQnVpbGQnXSwgJ2luaXQnLCAobWltb3NhQ29uZmlnLCBvcHRpb25zLCBuZXh0KSAtPlxuICAgIGZ1YnVJbXBvcnQuaW1wb3J0QXNzZXRzIG1pbW9zYUNvbmZpZywgb3B0aW9ucywgbmV4dFxuICByZWdpc3RlciBbJ3Bvc3RDbGVhbiddLCAnaW5pdCcsIGZ1YnVJbXBvcnQuY2xlYW5Bc3NldHNcblxucmVnaXN0ZXJDb21tYW5kID0gKHByb2dyYW0sIHJldHJpZXZlQ29uZmlnKSAtPlxuICBwcm9ncmFtXG4gICAgLmNvbW1hbmQoJ2Z1YnU6aW5pdCcpXG4gICAgLmRlc2NyaXB0aW9uKFwiYm93ZXIuanNvbiBhbmQgbWltb3NhLWNvbmZpZywgJ2NvZmZlZScgZmxhZyBmb3IgY29mZmVlXCIpXG4gICAgLmFjdGlvbiAoYXJncykgLT5cbiAgICAgIHNjYWZmb2xkaW5nLnNldHVwRmlsZVN5c3RlbSBhcmdzLCByZXRyaWV2ZUNvbmZpZ1xuICBwcm9ncmFtXG4gICAgLmNvbW1hbmQoJ2Z1YnU6cmVzZXQnKVxuICAgIC5kZXNjcmlwdGlvbihcInJtIC1yZiBvbiBhc3NldHMgYW5kIHB1YmxpYyB0aGVuIHJ1bnMgZnVidTppbml0XCIpXG4gICAgLmFjdGlvbiAoYXJncykgLT5cbiAgICAgIHNjYWZmb2xkaW5nLnJlc2V0RmlsZVN5c3RlbSBhcmdzLCByZXRyaWV2ZUNvbmZpZ1xuXG5tb2R1bGUuZXhwb3J0cyA9XG4gIHJlZ2lzdHJhdGlvbjogICAgcmVnaXN0cmF0aW9uXG4gIHJlZ2lzdGVyQ29tbWFuZDogcmVnaXN0ZXJDb21tYW5kXG4gIGRlZmF1bHRzOiAgICAgICAgY29uZmlnLmRlZmF1bHRzXG4gIHBsYWNlaG9sZGVyOiAgICAgY29uZmlnLnBsYWNlaG9sZGVyXG4gIHZhbGlkYXRlOiAgICAgICAgY29uZmlnLnZhbGlkYXRlXG4iXX0= diff --git a/lib/scaffolding.js b/lib/scaffolding.js index 173aee8..a292a04 100644 --- a/lib/scaffolding.js +++ b/lib/scaffolding.js @@ -1,5 +1,5 @@ "use strict"; -var Bliss, bliss, copyContents, cwd, deleteFolders, filesAtBase, fs, initFiles, log, makeFolders, path, relativeToThisFile, removeAllFilesFromDirectory, resetFileSystem, setupFileSystem, wrench, _, _ref; +var Bliss, bliss, copyContents, cwd, deleteFolders, filesAtBase, fs, initFiles, log, makeFolders, path, relativeToThisFile, removeAllFilesFromDirectory, resetFileSystem, setupFileSystem, setupFileSystemWithConfig, wrench, _, _ref; fs = require('fs'); @@ -23,13 +23,17 @@ cwd = process.cwd(); setupFileSystem = function(args, retrieveConfig) { return retrieveConfig(false, function(config) { - var baseDir; - baseDir = config.fubumvc ? config.fubumvc.baseDir : cwd; - makeFolders(baseDir); - return initFiles(args, baseDir); + return setupFileSystemWithConfig(config, args); }); }; +setupFileSystemWithConfig = function(config, args) { + var baseDir; + baseDir = config.fubumvc ? config.fubumvc.baseDir : cwd; + makeFolders(baseDir); + return initFiles(args, baseDir); +}; + resetFileSystem = function(args, retrieveConfig) { return retrieveConfig(false, function(config) { var baseDir; @@ -140,7 +144,8 @@ copyContents = function(_arg) { module.exports = { setupFileSystem: setupFileSystem, - resetFileSystem: resetFileSystem + resetFileSystem: resetFileSystem, + setupFileSystemWithConfig: setupFileSystemWithConfig }; -//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiL1VzZXJzL3NtaXRobS9kZXYvbWltb3NhLWZ1YnVtdmMvbGliL3NjYWZmb2xkaW5nLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiL1VzZXJzL3NtaXRobS9kZXYvbWltb3NhLWZ1YnVtdmMvc3JjL3NjYWZmb2xkaW5nLmNvZmZlZSJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxZQUFBLENBQUE7QUFBQSxJQUFBLHNNQUFBOztBQUFBLEVBQ0EsR0FBSyxPQUFBLENBQVEsSUFBUixDQURMLENBQUE7O0FBQUEsSUFFQSxHQUFPLE9BQUEsQ0FBUSxNQUFSLENBRlAsQ0FBQTs7QUFBQSxNQUdBLEdBQVMsT0FBQSxDQUFRLFFBQVIsQ0FIVCxDQUFBOztBQUFBLENBSUEsR0FBSSxPQUFBLENBQVEsUUFBUixDQUpKLENBQUE7O0FBQUEsT0FLNEIsT0FBQSxDQUFRLFFBQVIsQ0FBNUIsRUFBQyxXQUFBLEdBQUQsRUFBTSwwQkFBQSxrQkFMTixDQUFBOztBQUFBLEtBTUEsR0FBUSxPQUFBLENBQVEsT0FBUixDQU5SLENBQUE7O0FBQUEsS0FPQSxHQUFZLElBQUEsS0FBQSxDQUNWO0FBQUEsRUFBQSxHQUFBLEVBQUssUUFBTDtBQUFBLEVBQ0EsWUFBQSxFQUFjLEtBRGQ7QUFBQSxFQUVBLE9BQUEsRUFBUyxFQUZUO0NBRFUsQ0FQWixDQUFBOztBQUFBLEdBV0EsR0FBTSxPQUFPLENBQUMsR0FBUixDQUFBLENBWE4sQ0FBQTs7QUFBQSxlQWFBLEdBQWtCLFNBQUMsSUFBRCxFQUFPLGNBQVAsR0FBQTtTQUNoQixjQUFBLENBQWUsS0FBZixFQUFzQixTQUFDLE1BQUQsR0FBQTtBQUNwQixRQUFBLE9BQUE7QUFBQSxJQUFBLE9BQUEsR0FBYSxNQUFNLENBQUMsT0FBVixHQUF1QixNQUFNLENBQUMsT0FBTyxDQUFDLE9BQXRDLEdBQW1ELEdBQTdELENBQUE7QUFBQSxJQUNBLFdBQUEsQ0FBWSxPQUFaLENBREEsQ0FBQTtXQUVBLFNBQUEsQ0FBVSxJQUFWLEVBQWdC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Q0FBQTtBQUFBLEVBVUEsZ0JBQUEsR0FBbUIsQ0FBQyxDQUFDLEdBQUYsQ0FBTSxXQUFBLENBQVksT0FBWixFQUFxQixLQUFyQixDQUFOLEVBQW1DLFFBQW5DLENBVm5CLENBQUE7QUFBQSxFQVlBLENBQUMsQ0FBQyxJQUFGLENBQU8sZ0JBQVAsRUFBeUIsU0FBQyxJQUFELEdBQUE7V0FDdkIsWUFBQSxDQUFhLElBQWIsRUFEdUI7RUFBQSxDQUF6QixDQVpBLENBRFU7QUFBQSxDQTVEWixDQUFBOztBQUFBLFlBK0VBLEdBQWUsU0FBQyxJQUFELEdBQUE7QUFDYixNQUFBLGtCQUFBO0FBQUEsRUFEZSxvQkFBVSxrQkFDekIsQ0FBQTtBQUFBLEVBQUEsSUFBQSxDQUFBLEVBQVMsQ0FBQyxVQUFILENBQWMsUUFBZCxDQUFQO0FBQ0UsSUFBQSxHQUFBLENBQUksTUFBSixFQUFhLFdBQUEsR0FBVSxRQUF2QixDQUFBLENBQUE7V0FDQSxFQUFFLENBQUMsYUFBSCxDQUFpQixRQUFqQixFQUEyQixRQUEzQixFQUZGO0dBRGE7QUFBQSxDQS9FZixDQUFBOztBQUFBLE1Bb0ZNLENBQUMsT0FBUCxHQUFpQjtBQUFBLEVBQUMsaUJBQUEsZUFBRDtBQUFBLEVBQWtCLGlCQUFBLGVBQWxCO0NBcEZqQixDQUFBIiwic291cmNlc0NvbnRlbnQiOlsiXCJ1c2Ugc3RyaWN0XCJcclxuZnMgPSByZXF1aXJlICdmcydcclxucGF0aCA9IHJlcXVpcmUgJ3BhdGgnXHJcbndyZW5jaCA9IHJlcXVpcmUgJ3dyZW5jaCdcclxuXyA9IHJlcXVpcmUgJ2xvZGFzaCdcclxue2xvZywgcmVsYXRpdmVUb1RoaXNGaWxlfSA9IHJlcXVpcmUgJy4vdXRpbCdcclxuQmxpc3MgPSByZXF1aXJlICdibGlzcydcclxuYmxpc3MgPSBuZXcgQmxpc3NcclxuICBleHQ6IFwiLmJsaXNzXCJcclxuICBjYWNoZUVuYWJsZWQ6IGZhbHNlLFxyXG4gIGNvbnRleHQ6IHt9XHJcbmN3ZCA9IHByb2Nlc3MuY3dkKClcclxuXHJcbnNldHVwRmlsZVN5c3RlbSA9IChhcmdzLCByZXRyaWV2ZUNvbmZpZykgLT5cclxuICByZXRyaWV2ZUNvbmZpZyhmYWxzZSwgKGNvbmZpZykgLT5cbiAgICBiYXNlRGlyID0gaWYgY29uZmlnLmZ1YnVtdmMgdGhlbiBjb25maWcuZnVidW12Yy5iYXNlRGlyIGVsc2UgY3dkXG4gICAgbWFrZUZvbGRlcnMoYmFzZURpcilcclxuICAgIGluaXRGaWxlcyhhcmdzLCBiYXNlRGlyKVxyXG4gIClcblxyXG5yZXNldEZpbGVTeXN0ZW0gPSAoYXJncywgcmV0cmlldmVDb25maWcpIC0+XHJcbiAgcmV0cmlldmVDb25maWcoZmFsc2UsIChjb25maWcpIC0+XG4gICAgYmFzZURpciA9IGlmIGNvbmZpZy5mdWJ1bXZjIHRoZW4gY29uZmlnLmZ1YnVtdmMuYmFzZURpciBlbHNlIGN3ZFxuICAgIGRlbGV0ZUZvbGRlcnMoYmFzZURpcilcclxuICAgIHNldHVwRmlsZVN5c3RlbSBhcmdzLCByZXRyaWV2ZUNvbmZpZ1xyXG4gIClcblxyXG5tYWtlRm9sZGVycyA9IChiYXNlRGlyID0gXCJcIiktPlxyXG4gIGZvbGRlcnMgPSBbJ2Fzc2V0cy9zY3JpcHRzJywgJ2Fzc2V0cy9zdHlsZXMnLCAncHVibGljJ11cclxuICBfLmVhY2ggZm9sZGVycywgKGRpcikgLT5cclxuICAgIHVubGVzcyBmcy5leGlzdHNTeW5jIGRpclxyXG4gICAgICB0YXJnZXQgPSBwYXRoLmpvaW4oYmFzZURpciwgZGlyKVxuICAgICAgbG9nIFwiaW5mb1wiLCBcImNyZWF0aW5nICN7dGFyZ2V0fVwiXHJcbiAgICAgIHdyZW5jaC5ta2RpclN5bmNSZWN1cnNpdmUgdGFyZ2V0LCAwbzA3NzdcclxuXG5yZW1vdmVBbGxGaWxlc0Zyb21EaXJlY3RvcnkgPSAoZm9sZGVyLCBrZWVwKSAtPlxuICBmcy5yZWFkZGlyU3luYyhmb2xkZXIpLmZvckVhY2ggKGZpbGUpIC0+XG4gICAgdGFyZ2V0RmlsZSA9IHBhdGguam9pbihmb2xkZXIsIGZpbGUpXG4gICAgaXNEaXIgPSBmcy5sc3RhdFN5bmModGFyZ2V0RmlsZSkuaXNEaXJlY3RvcnkoKVxuICAgIGlmIGZpbGUgaXMga2VlcFxuICAgICAgaWYgaXNEaXIgdGhlbiByZW1vdmVBbGxGaWxlc0Zyb21EaXJlY3RvcnkgdGFyZ2V0RmlsZVxuICAgICAgcmV0dXJuXG4gICAgdHJ5XG4gICAgICBpZiBpc0RpciB0aGVuIHdyZW5jaC5ybWRpclN5bmNSZWN1cnNpdmUodGFyZ2V0RmlsZSkgZWxzZVxuICAgICAgICBpZiAoL1xcLmdpdGlnbm9yZS8udGVzdCB0YXJnZXRGaWxlKVxuICAgICAgICAgIHJldHVyblxuICAgICAgICBmcy51bmxpbmtTeW5jKHRhcmdldEZpbGUpXG4gICAgICAgIGxvZyBcInN1Y2Nlc3NcIiwgXCJkZWxldGVkICN7dGFyZ2V0RmlsZX1cIlxyXG4gICAgY2F0Y2ggZXJyXG4gICAgICBsb2coXCJlcnJvclwiLCBlcnIpXG5cclxuZGVsZXRlRm9sZGVycyA9IChiYXNlRGlyID0gXCJcIiktPlxyXG4gIGZvbGRlcnMgPSBbJ2Fzc2V0cycsICdwdWJsaWMnXVxyXG4gIF8uZWFjaCBmb2xkZXJzLCAoZGlyKSAtPlxyXG4gICAgdGFyZ2V0ID0gcGF0aC5qb2luKGJhc2VEaXIsIGRpcilcbiAgICByZW1vdmVBbGxGaWxlc0Zyb21EaXJlY3RvcnkgdGFyZ2V0LCBcInNjcmlwdHNcIlxuXG5maWxlc0F0QmFzZSA9IChiYXNlRGlyLCBmaWxlcykgLT5cbiAgXy5tYXAgZmlsZXMsIChmKS0+IHBhdGguam9pbihiYXNlRGlyLCBmKVxuXHJcbmluaXRGaWxlcyA9IChmbGFncyA9IGZhbHNlLCBiYXNlRGlyID0gXCJcIikgLT5cclxuICB1c2VDb2ZmZWUgPSBmbGFncyA9PSBcImNvZmZlZVwiXHJcbiAgZXh0ID0gaWYgdXNlQ29mZmVlIHRoZW4gXCJjb2ZmZWVcIiBlbHNlIFwianNcIlxyXG4gIGZpbGVzID0gW1wiYm93ZXIuanNvblwiLCBcIm1pbW9zYS1jb25maWcuI3tleHR9XCIsIFwiYXNzZXRzL2RvbnQtZGVsZXRlLW1lLmpzXCJdXHJcbiAgdmlld01vZGVsID1cclxuICAgIG5hbWU6IHBhdGguYmFzZW5hbWUgY3dkXHJcbiAgY29udGVudHMgPSBfIGZpbGVzXHJcbiAgICAubWFwIChmKSAtPiByZWxhdGl2ZVRvVGhpc0ZpbGUgcGF0aC5qb2luKFwiLi4vZnVidS1pbXBvcnQtdGVtcGxhdGVzL1wiLCBmKVxyXG4gICAgLm1hcCAoZikgLT4gYmxpc3MucmVuZGVyIGYsIHZpZXdNb2RlbFxyXG4gICAgLm1hcCAoZikgLT4gZi50cmltKClcclxuICAgIC52YWx1ZSgpXHJcbiAgZmlsZVdpdGhDb250ZW50cyA9IF8uemlwKGZpbGVzQXRCYXNlKGJhc2VEaXIsIGZpbGVzKSwgY29udGVudHMpXHJcblxyXG4gIF8uZWFjaCBmaWxlV2l0aENvbnRlbnRzLCAocGFpcikgLT5cclxuICAgIGNvcHlDb250ZW50cyBwYWlyXHJcbiAgI2F2b2lkIHJldHVybmluZyBhbiBhcnJheSBvZiBub3RoaW5nIHdoZW4gdXNpbmcgYSBjb21wcmVoZW5zaW9uIGFzIHlvdXIgbGFzdCBsaW5lXHJcbiAgI2J5IHVzaW5nIGFuIGV4cGxpY2l0IHJldHVyblxyXG4gIHJldHVyblxyXG5cclxuY29weUNvbnRlbnRzID0gKFtmaWxlTmFtZSwgY29udGVudHNdKSAtPlxyXG4gIHVubGVzcyBmcy5leGlzdHNTeW5jIGZpbGVOYW1lXHJcbiAgICBsb2cgXCJpbmZvXCIsIFwiY3JlYXRpbmcgI3tmaWxlTmFtZX1cIlxyXG4gICAgZnMud3JpdGVGaWxlU3luYyBmaWxlTmFtZSwgY29udGVudHNcclxuXHJcbm1vZHVsZS5leHBvcnRzID0ge3NldHVwRmlsZVN5c3RlbSwgcmVzZXRGaWxlU3lzdGVtfVxyXG4iXX0= +//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiL21udC9SZXNvdXJjZXMvUHJvamVjdHMvbWltb3NhLWZ1YnVtdmMvbGliL3NjYWZmb2xkaW5nLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiL21udC9SZXNvdXJjZXMvUHJvamVjdHMvbWltb3NhLWZ1YnVtdmMvc3JjL3NjYWZmb2xkaW5nLmNvZmZlZSJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxZQUFBLENBQUE7QUFBQSxJQUFBLGlPQUFBOztBQUFBLEVBQ0EsR0FBSyxPQUFBLENBQVEsSUFBUixDQURMLENBQUE7O0FBQUEsSUFFQSxHQUFPLE9BQUEsQ0FBUSxNQUFSLENBRlAsQ0FBQTs7QUFBQSxNQUdBLEdBQVMsT0FBQSxDQUFRLFFBQVIsQ0FIVCxDQUFBOztBQUFBLENBSUEsR0FBSSxPQUFBLENBQVEsUUFBUixDQUpKLENBQUE7O0FBQUEsT0FLNEIsT0FBQSxDQUFRLFFBQVIsQ0FBNUIsRUFBQyxXQUFBLEdBQUQsRUFBTSwwQkFBQSxrQkFMTixDQUFBOztBQUFBLEtBTUEsR0FBUSxPQUFBLENBQVEsT0FBUixDQU5SLENBQUE7O0FBQUEsS0FPQSxHQUFZLElBQUEsS0FBQSxDQUNWO0FBQUEsRUFBQSxHQUFBLEVBQUssUUFBTDtBQUFBLEVBQ0EsWUFBQSxFQUFjLEtBRGQ7QUFBQSxFQUVBLE9BQUEsRUFBUyxFQUZUO0NBRFUsQ0FQWixDQUFBOztBQUFBLEdBV0EsR0FBTSxPQUFPLENBQUMsR0FBUixDQUFBLENBWE4sQ0FBQTs7QUFBQSxlQWFBLEdBQWtCLFNBQUMsSUFBRCxFQUFPLGNBQVAsR0FBQTtTQUNoQixjQUFBLENBQWUsS0FBZixFQUFzQixTQUFDLE1BQUQsR0FBQTtXQUNwQix5QkFBQSxDQUEwQixNQUExQixFQUFrQyxJQUFsQyxFQURvQjtFQUFBLENBQXRCLEVBRGdCO0FBQUEsQ0FibEIsQ0FBQTs7QUFBQSx5QkFrQkEsR0FBNEIsU0FBQyxNQUFELEVBQVMsSUFBVCxHQUFBO0FBQzFCLE1BQUEsT0FBQTtBQUFBLEVBQUEsT0FB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RUFBUDtFQUFBLENBRkksQ0FHVCxDQUFDLEdBSFEsQ0FHSixTQUFDLENBQUQsR0FBQTtXQUFPLENBQUMsQ0FBQyxJQUFGLENBQUEsRUFBUDtFQUFBLENBSEksQ0FJVCxDQUFDLEtBSlEsQ0FBQSxDQUxYLENBQUE7QUFBQSxFQVVBLGdCQUFBLEdBQW1CLENBQUMsQ0FBQyxHQUFGLENBQU0sV0FBQSxDQUFZLE9BQVosRUFBcUIsS0FBckIsQ0FBTixFQUFtQyxRQUFuQyxDQVZuQixDQUFBO0FBQUEsRUFZQSxDQUFDLENBQUMsSUFBRixDQUFPLGdCQUFQLEVBQXlCLFNBQUMsSUFBRCxHQUFBO1dBQ3ZCLFlBQUEsQ0FBYSxJQUFiLEVBRHVCO0VBQUEsQ0FBekIsQ0FaQSxDQURVO0FBQUEsQ0EvRFosQ0FBQTs7QUFBQSxZQWtGQSxHQUFlLFNBQUMsSUFBRCxHQUFBO0FBQ2IsTUFBQSxrQkFBQTtBQUFBLEVBRGUsb0JBQVUsa0JBQ3pCLENBQUE7QUFBQSxFQUFBLElBQUEsQ0FBQSxFQUFTLENBQUMsVUFBSCxDQUFjLFFBQWQsQ0FBUDtBQUNFLElBQUEsR0FBQSxDQUFJLE1BQUosRUFBYSxXQUFBLEdBQVUsUUFBdkIsQ0FBQSxDQUFBO1dBQ0EsRUFBRSxDQUFDLGFBQUgsQ0FBaUIsUUFBakIsRUFBMkIsUUFBM0IsRUFGRjtHQURhO0FBQUEsQ0FsRmYsQ0FBQTs7QUFBQSxNQXVGTSxDQUFDLE9BQVAsR0FBaUI7QUFBQSxFQUFDLGlCQUFBLGVBQUQ7QUFBQSxFQUFrQixpQkFBQSxlQUFsQjtBQUFBLEVBQW1DLDJCQUFBLHlCQUFuQztDQXZGakIsQ0FBQSIsInNvdXJjZXNDb250ZW50IjpbIlwidXNlIHN0cmljdFwiXHJcbmZzID0gcmVxdWlyZSAnZnMnXHJcbnBhdGggPSByZXF1aXJlICdwYXRoJ1xyXG53cmVuY2ggPSByZXF1aXJlICd3cmVuY2gnXHJcbl8gPSByZXF1aXJlICdsb2Rhc2gnXHJcbntsb2csIHJlbGF0aXZlVG9UaGlzRmlsZX0gPSByZXF1aXJlICcuL3V0aWwnXHJcbkJsaXNzID0gcmVxdWlyZSAnYmxpc3MnXHJcbmJsaXNzID0gbmV3IEJsaXNzXHJcbiAgZXh0OiBcIi5ibGlzc1wiXHJcbiAgY2FjaGVFbmFibGVkOiBmYWxzZSxcclxuICBjb250ZXh0OiB7fVxyXG5jd2QgPSBwcm9jZXNzLmN3ZCgpXHJcblxyXG5zZXR1cEZpbGVTeXN0ZW0gPSAoYXJncywgcmV0cmlldmVDb25maWcpIC0+XHJcbiAgcmV0cmlldmVDb25maWcoZmFsc2UsIChjb25maWcpIC0+XG4gICAgc2V0dXBGaWxlU3lzdGVtV2l0aENvbmZpZyBjb25maWcsIGFyZ3NcbiAgKVxuXG5zZXR1cEZpbGVTeXN0ZW1XaXRoQ29uZmlnID0gKGNvbmZpZywgYXJncykgLT5cbiAgYmFzZURpciA9IGlmIGNvbmZpZy5mdWJ1bXZjIHRoZW4gY29uZmlnLmZ1YnVtdmMuYmFzZURpciBlbHNlIGN3ZFxuICBtYWtlRm9sZGVycyhiYXNlRGlyKVxyXG4gIGluaXRGaWxlcyhhcmdzLCBiYXNlRGlyKVxyXG5cclxucmVzZXRGaWxlU3lzdGVtID0gKGFyZ3MsIHJldHJpZXZlQ29uZmlnKSAtPlxyXG4gIHJldHJpZXZlQ29uZmlnKGZhbHNlLCAoY29uZmlnKSAtPlxuICAgIGJhc2VEaXIgPSBpZiBjb25maWcuZnVidW12YyB0aGVuIGNvbmZpZy5mdWJ1bXZjLmJhc2VEaXIgZWxzZSBjd2RcbiAgICBkZWxldGVGb2xkZXJzKGJhc2VEaXIpXHJcbiAgICBzZXR1cEZpbGVTeXN0ZW0gYXJncywgcmV0cmlldmVDb25maWdcclxuICApXG5cclxubWFrZUZvbGRlcnMgPSAoYmFzZURpciA9IFwiXCIpLT5cclxuICBmb2xkZXJzID0gWydhc3NldHMvc2NyaXB0cycsICdhc3NldHMvc3R5bGVzJywgJ3B1YmxpYyddXHJcbiAgXy5lYWNoIGZvbGRlcnMsIChkaXIpIC0+XHJcbiAgICB1bmxlc3MgZnMuZXhpc3RzU3luYyBkaXJcclxuICAgICAgdGFyZ2V0ID0gcGF0aC5qb2luKGJhc2VEaXIsIGRpcilcbiAgICAgIGxvZyBcImluZm9cIiwgXCJjcmVhdGluZyAje3RhcmdldH1cIlxyXG4gICAgICB3cmVuY2gubWtkaXJTeW5jUmVjdXJzaXZlIHRhcmdldCwgMG8wNzc3XHJcblxucmVtb3ZlQWxsRmlsZXNGcm9tRGlyZWN0b3J5ID0gKGZvbGRlciwga2VlcCkgLT5cbiAgZnMucmVhZGRpclN5bmMoZm9sZGVyKS5mb3JFYWNoIChmaWxlKSAtPlxuICAgIHRhcmdldEZpbGUgPSBwYXRoLmpvaW4oZm9sZGVyLCBmaWxlKVxuICAgIGlzRGlyID0gZnMubHN0YXRTeW5jKHRhcmdldEZpbGUpLmlzRGlyZWN0b3J5KClcbiAgICBpZiBmaWxlIGlzIGtlZXBcbiAgICAgIGlmIGlzRGlyIHRoZW4gcmVtb3ZlQWxsRmlsZXNGcm9tRGlyZWN0b3J5IHRhcmdldEZpbGVcbiAgICAgIHJldHVyblxuICAgIHRyeVxuICAgICAgaWYgaXNEaXIgdGhlbiB3cmVuY2gucm1kaXJTeW5jUmVjdXJzaXZlKHRhcmdldEZpbGUpIGVsc2VcbiAgICAgICAgaWYgKC9cXC5naXRpZ25vcmUvLnRlc3QgdGFyZ2V0RmlsZSlcbiAgICAgICAgICByZXR1cm5cbiAgICAgICAgZnMudW5saW5rU3luYyh0YXJnZXRGaWxlKVxuICAgICAgICBsb2cgXCJzdWNjZXNzXCIsIFwiZGVsZXRlZCAje3RhcmdldEZpbGV9XCJcclxuICAgIGNhdGNoIGVyclxuICAgICAgbG9nKFwiZXJyb3JcIiwgZXJyKVxuXHJcbmRlbGV0ZUZvbGRlcnMgPSAoYmFzZURpciA9IFwiXCIpLT5cclxuICBmb2xkZXJzID0gWydhc3NldHMnLCAncHVibGljJ11cclxuICBfLmVhY2ggZm9sZGVycywgKGRpcikgLT5cclxuICAgIHRhcmdldCA9IHBhdGguam9pbihiYXNlRGlyLCBkaXIpXG4gICAgcmVtb3ZlQWxsRmlsZXNGcm9tRGlyZWN0b3J5IHRhcmdldCwgXCJzY3JpcHRzXCJcblxuZmlsZXNBdEJhc2UgPSAoYmFzZURpciwgZmlsZXMpIC0+XG4gIF8ubWFwIGZpbGVzLCAoZiktPiBwYXRoLmpvaW4oYmFzZURpciwgZilcblxyXG5pbml0RmlsZXMgPSAoZmxhZ3MgPSBmYWxzZSwgYmFzZURpciA9IFwiXCIpIC0+XHJcbiAgdXNlQ29mZmVlID0gZmxhZ3MgPT0gXCJjb2ZmZWVcIlxyXG4gIGV4dCA9IGlmIHVzZUNvZmZlZSB0aGVuIFwiY29mZmVlXCIgZWxzZSBcImpzXCJcclxuICBmaWxlcyA9IFtcImJvd2VyLmpzb25cIiwgXCJtaW1vc2EtY29uZmlnLiN7ZXh0fVwiLCBcImFzc2V0cy9kb250LWRlbGV0ZS1tZS5qc1wiXVxyXG4gIHZpZXdNb2RlbCA9XHJcbiAgICBuYW1lOiBwYXRoLmJhc2VuYW1lIGN3ZFxyXG4gIGNvbnRlbnRzID0gXyBmaWxlc1xyXG4gICAgLm1hcCAoZikgLT4gcmVsYXRpdmVUb1RoaXNGaWxlIHBhdGguam9pbihcIi4uL2Z1YnUtaW1wb3J0LXRlbXBsYXRlcy9cIiwgZilcclxuICAgIC5tYXAgKGYpIC0+IGJsaXNzLnJlbmRlciBmLCB2aWV3TW9kZWxcclxuICAgIC5tYXAgKGYpIC0+IGYudHJpbSgpXHJcbiAgICAudmFsdWUoKVxyXG4gIGZpbGVXaXRoQ29udGVudHMgPSBfLnppcChmaWxlc0F0QmFzZShiYXNlRGlyLCBmaWxlcyksIGNvbnRlbnRzKVxyXG5cclxuICBfLmVhY2ggZmlsZVdpdGhDb250ZW50cywgKHBhaXIpIC0+XHJcbiAgICBjb3B5Q29udGVudHMgcGFpclxyXG4gICNhdm9pZCByZXR1cm5pbmcgYW4gYXJyYXkgb2Ygbm90aGluZyB3aGVuIHVzaW5nIGEgY29tcHJlaGVuc2lvbiBhcyB5b3VyIGxhc3QgbGluZVxyXG4gICNieSB1c2luZyBhbiBleHBsaWNpdCByZXR1cm5cclxuICByZXR1cm5cclxuXHJcbmNvcHlDb250ZW50cyA9IChbZmlsZU5hbWUsIGNvbnRlbnRzXSkgLT5cclxuICB1bmxlc3MgZnMuZXhpc3RzU3luYyBmaWxlTmFtZVxyXG4gICAgbG9nIFwiaW5mb1wiLCBcImNyZWF0aW5nICN7ZmlsZU5hbWV9XCJcclxuICAgIGZzLndyaXRlRmlsZVN5bmMgZmlsZU5hbWUsIGNvbnRlbnRzXHJcblxyXG5tb2R1bGUuZXhwb3J0cyA9IHtzZXR1cEZpbGVTeXN0ZW0sIHJlc2V0RmlsZVN5c3RlbSwgc2V0dXBGaWxlU3lzdGVtV2l0aENvbmZpZ31cclxuIl19 diff --git a/lib/util.js b/lib/util.js index 2147691..874ca1e 100644 --- a/lib/util.js +++ b/lib/util.js @@ -42,4 +42,4 @@ module.exports = { printObj: printObj }; -//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiL1VzZXJzL3NtaXRobS9kZXYvbWltb3NhLWZ1YnVtdmMvbGliL3V0aWwuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIvVXNlcnMvc21pdGhtL2Rldi9taW1vc2EtZnVidW12Yy9zcmMvdXRpbC5jb2ZmZWUiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsWUFBQSxDQUFBO0FBQUEsSUFBQSxrREFBQTs7QUFBQSxNQUNBLEdBQVMsT0FBQSxDQUFRLFdBQVIsQ0FEVCxDQUFBOztBQUFBLElBRUEsR0FBTyxPQUFBLENBQVEsTUFBUixDQUZQLENBQUE7O0FBQUEsQ0FHQSxHQUFJLE9BQUEsQ0FBUSxRQUFSLENBSEosQ0FBQTs7QUFBQSxHQUtBLEdBQU0sU0FBQyxLQUFELEVBQVEsU0FBUixHQUFBO1NBQ0osTUFBTyxDQUFBLEtBQUEsQ0FBUCxDQUFlLFdBQUEsR0FBVSxTQUF6QixFQURJO0FBQUEsQ0FMTixDQUFBOztBQUFBLGtCQVFBLEdBQXFCLFNBQUMsUUFBRCxFQUFXLE9BQVgsR0FBQTs7SUFDbkIsVUFBVztHQUFYO1NBQ0EsSUFBSSxDQUFDLElBQUwsQ0FBVSxPQUFWLEVBQW1CLFFBQW5CLEVBRm1CO0FBQUEsQ0FSckIsQ0FBQTs7QUFBQSxRQVlBLEdBQVcsU0FBQyxHQUFELEVBQU0sTUFBTixHQUFBO0FBQ1QsTUFBQSxVQUFBO0FBQUEsRUFBQSxVQUFBLEdBQWEsU0FBQyxDQUFELEdBQUE7QUFBTyxJQUFBLElBQUcsY0FBSDthQUFnQixFQUFBLEdBQUUsTUFBRixHQUFVLEdBQVYsR0FBWSxFQUE1QjtLQUFBLE1BQUE7YUFBc0MsRUFBdEM7S0FBUDtFQUFBLENBQWIsQ0FBQTtTQUNBLENBQUMsQ0FBQyxJQUFGLENBQU8sR0FBUCxFQUFZLFNBQUMsQ0FBRCxFQUFHLENBQUgsR0FBQTtBQUNWLElBQUEsSUFBSSxDQUFDLENBQUMsUUFBRixDQUFXLENBQVgsQ0FBSjthQUNFLFFBQUEsQ0FBUyxDQUFULEVBQVksVUFBQSxDQUFXLENBQVgsQ0FBWixFQURGO0tBQUEsTUFBQTthQUdFLE9BQU8sQ0FBQyxHQUFSLENBQVksRUFBQSxHQUFFLENBQUEsVUFBQSxDQUFXLENBQVgsQ0FBQSxDQUFGLEdBQWdCLElBQWhCLEdBQW1CLENBQS9CLEVBSEY7S0FEVTtFQUFBLENBQVosRUFGUztBQUFBLENBWlgsQ0FBQTs7QUFBQSxNQW9CTSxDQUFDLE9BQVAsR0FBaUI7QUFBQSxFQUFDLEtBQUEsR0FBRDtBQUFBLEVBQU0sb0JBQUEsa0JBQU47QUFBQSxFQUEwQixVQUFBLFFBQTFCO0NBcEJqQixDQUFBIiwic291cmNlc0NvbnRlbnQiOlsiXCJ1c2Ugc3RyaWN0XCJcclxubG9nZ2VyID0gcmVxdWlyZSAnbG9nbWltb3NhJ1xyXG5wYXRoID0gcmVxdWlyZSAncGF0aCdcclxuXyA9IHJlcXVpcmUgJ2xvZGFzaCdcclxuXHJcbmxvZyA9IChsZXZlbCwgc3RhdGVtZW50KSAtPlxyXG4gIGxvZ2dlcltsZXZlbF0gXCJmdWJ1bXZjOiAje3N0YXRlbWVudH1cIlxyXG5cclxucmVsYXRpdmVUb1RoaXNGaWxlID0gKGZpbGVQYXRoLCBkaXJuYW1lKSAtPlxyXG4gIGRpcm5hbWUgPz0gX19kaXJuYW1lXHJcbiAgcGF0aC5qb2luIGRpcm5hbWUsIGZpbGVQYXRoXHJcblxyXG5wcmludE9iaiA9IChvYmosIHByZWZpeCkgLT5cclxuICB3aXRoUHJlZml4ID0gKHgpIC0+IGlmIHByZWZpeD8gdGhlbiBcIiN7cHJlZml4fS4je3h9XCIgZWxzZSB4XHJcbiAgXy5lYWNoIG9iaiwgKHYsaykgLT5cclxuICAgIGlmIChfLmlzT2JqZWN0IHYpXHJcbiAgICAgIHByaW50T2JqKHYsIHdpdGhQcmVmaXggaylcclxuICAgIGVsc2VcclxuICAgICAgY29uc29sZS5sb2cgXCIje3dpdGhQcmVmaXgga306ICN7dn1cIlxyXG5cclxubW9kdWxlLmV4cG9ydHMgPSB7bG9nLCByZWxhdGl2ZVRvVGhpc0ZpbGUsIHByaW50T2JqfVxyXG4iXX0= +//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiL21udC9SZXNvdXJjZXMvUHJvamVjdHMvbWltb3NhLWZ1YnVtdmMvbGliL3V0aWwuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIvbW50L1Jlc291cmNlcy9Qcm9qZWN0cy9taW1vc2EtZnVidW12Yy9zcmMvdXRpbC5jb2ZmZWUiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsWUFBQSxDQUFBO0FBQUEsSUFBQSxrREFBQTs7QUFBQSxNQUNBLEdBQVMsT0FBQSxDQUFRLFdBQVIsQ0FEVCxDQUFBOztBQUFBLElBRUEsR0FBTyxPQUFBLENBQVEsTUFBUixDQUZQLENBQUE7O0FBQUEsQ0FHQSxHQUFJLE9BQUEsQ0FBUSxRQUFSLENBSEosQ0FBQTs7QUFBQSxHQUtBLEdBQU0sU0FBQyxLQUFELEVBQVEsU0FBUixHQUFBO1NBQ0osTUFBTyxDQUFBLEtBQUEsQ0FBUCxDQUFlLFdBQUEsR0FBVSxTQUF6QixFQURJO0FBQUEsQ0FMTixDQUFBOztBQUFBLGtCQVFBLEdBQXFCLFNBQUMsUUFBRCxFQUFXLE9BQVgsR0FBQTs7SUFDbkIsVUFBVztHQUFYO1NBQ0EsSUFBSSxDQUFDLElBQUwsQ0FBVSxPQUFWLEVBQW1CLFFBQW5CLEVBRm1CO0FBQUEsQ0FSckIsQ0FBQTs7QUFBQSxRQVlBLEdBQVcsU0FBQyxHQUFELEVBQU0sTUFBTixHQUFBO0FBQ1QsTUFBQSxVQUFBO0FBQUEsRUFBQSxVQUFBLEdBQWEsU0FBQyxDQUFELEdBQUE7QUFBTyxJQUFBLElBQUcsY0FBSDthQUFnQixFQUFBLEdBQUUsTUFBRixHQUFVLEdBQVYsR0FBWSxFQUE1QjtLQUFBLE1BQUE7YUFBc0MsRUFBdEM7S0FBUDtFQUFBLENBQWIsQ0FBQTtTQUNBLENBQUMsQ0FBQyxJQUFGLENBQU8sR0FBUCxFQUFZLFNBQUMsQ0FBRCxFQUFHLENBQUgsR0FBQTtBQUNWLElBQUEsSUFBSSxDQUFDLENBQUMsUUFBRixDQUFXLENBQVgsQ0FBSjthQUNFLFFBQUEsQ0FBUyxDQUFULEVBQVksVUFBQSxDQUFXLENBQVgsQ0FBWixFQURGO0tBQUEsTUFBQTthQUdFLE9BQU8sQ0FBQyxHQUFSLENBQVksRUFBQSxHQUFFLENBQUEsVUFBQSxDQUFXLENBQVgsQ0FBQSxDQUFGLEdBQWdCLElBQWhCLEdBQW1CLENBQS9CLEVBSEY7S0FEVTtFQUFBLENBQVosRUFGUztBQUFBLENBWlgsQ0FBQTs7QUFBQSxNQW9CTSxDQUFDLE9BQVAsR0FBaUI7QUFBQSxFQUFDLEtBQUEsR0FBRDtBQUFBLEVBQU0sb0JBQUEsa0JBQU47QUFBQSxFQUEwQixVQUFBLFFBQTFCO0NBcEJqQixDQUFBIiwic291cmNlc0NvbnRlbnQiOlsiXCJ1c2Ugc3RyaWN0XCJcclxubG9nZ2VyID0gcmVxdWlyZSAnbG9nbWltb3NhJ1xyXG5wYXRoID0gcmVxdWlyZSAncGF0aCdcclxuXyA9IHJlcXVpcmUgJ2xvZGFzaCdcclxuXHJcbmxvZyA9IChsZXZlbCwgc3RhdGVtZW50KSAtPlxyXG4gIGxvZ2dlcltsZXZlbF0gXCJmdWJ1bXZjOiAje3N0YXRlbWVudH1cIlxyXG5cclxucmVsYXRpdmVUb1RoaXNGaWxlID0gKGZpbGVQYXRoLCBkaXJuYW1lKSAtPlxyXG4gIGRpcm5hbWUgPz0gX19kaXJuYW1lXHJcbiAgcGF0aC5qb2luIGRpcm5hbWUsIGZpbGVQYXRoXHJcblxyXG5wcmludE9iaiA9IChvYmosIHByZWZpeCkgLT5cclxuICB3aXRoUHJlZml4ID0gKHgpIC0+IGlmIHByZWZpeD8gdGhlbiBcIiN7cHJlZml4fS4je3h9XCIgZWxzZSB4XHJcbiAgXy5lYWNoIG9iaiwgKHYsaykgLT5cclxuICAgIGlmIChfLmlzT2JqZWN0IHYpXHJcbiAgICAgIHByaW50T2JqKHYsIHdpdGhQcmVmaXggaylcclxuICAgIGVsc2VcclxuICAgICAgY29uc29sZS5sb2cgXCIje3dpdGhQcmVmaXgga306ICN7dn1cIlxyXG5cclxubW9kdWxlLmV4cG9ydHMgPSB7bG9nLCByZWxhdGl2ZVRvVGhpc0ZpbGUsIHByaW50T2JqfVxyXG4iXX0= diff --git a/src/config.coffee b/src/config.coffee index 10c1e5f..5c5c072 100644 --- a/src/config.coffee +++ b/src/config.coffee @@ -2,6 +2,7 @@ _ = require "lodash" path = require 'path' +fs = require 'fs' exports.defaults = -> fubumvc: @@ -40,7 +41,7 @@ exports.validate = (config, validators) -> {excludePaths, conventions, usePolling, interval, binaryInterval, baseDir} = fubumvc - unless !baseDir? or (baseDir? and path.existsSync baseDir) + unless !baseDir? or (baseDir? and fs.existsSync baseDir) errors.push "fubumvc.baseDir" return errors diff --git a/src/fubu-import.coffee b/src/fubu-import.coffee index 79ac073..93a7c9f 100644 --- a/src/fubu-import.coffee +++ b/src/fubu-import.coffee @@ -244,11 +244,12 @@ cleanAssets = (mimosaConfig, options, next) -> mimosaConfig.fubumvc extensions = buildExtensions mimosaConfig options = {sourceDir, conventions, baseDir} + setWorkingDir baseDir filesFor = (target) -> log "debug", "finding files for: #{target} with extensions: #{extensions} and excludePaths: #{excludePaths}" - files = findSourceFiles target, extensions, excludePaths - outputFiles = _.map files, (f) -> transformPath f, target, options, mimosaConfig + files = findSourceFiles target, extensions, excludePaths, baseDir + outputFiles = _.map files, (f) -> transformPath f, target, options [target, files, outputFiles] targets = getTargets workingDir diff --git a/src/index.coffee b/src/index.coffee index 3cbbf3d..ebeabdf 100644 --- a/src/index.coffee +++ b/src/index.coffee @@ -5,7 +5,10 @@ fubuImport = require './fubu-import' scaffolding = require './scaffolding' registration = (mimosaConfig, register) -> - register ['preBuild'], 'init', fubuImport.importAssets + mimosaConfig.log["info"] "setting up fubumvc" + scaffolding.setupFileSystemWithConfig mimosaConfig + register ['preBuild'], 'init', (mimosaConfig, options, next) -> + fubuImport.importAssets mimosaConfig, options, next register ['postClean'], 'init', fubuImport.cleanAssets registerCommand = (program, retrieveConfig) -> diff --git a/src/scaffolding.coffee b/src/scaffolding.coffee index 2599c2e..d510abc 100644 --- a/src/scaffolding.coffee +++ b/src/scaffolding.coffee @@ -13,10 +13,13 @@ cwd = process.cwd() setupFileSystem = (args, retrieveConfig) -> retrieveConfig(false, (config) -> - baseDir = if config.fubumvc then config.fubumvc.baseDir else cwd - makeFolders(baseDir) - initFiles(args, baseDir) + setupFileSystemWithConfig config, args ) + +setupFileSystemWithConfig = (config, args) -> + baseDir = if config.fubumvc then config.fubumvc.baseDir else cwd + makeFolders(baseDir) + initFiles(args, baseDir) resetFileSystem = (args, retrieveConfig) -> retrieveConfig(false, (config) -> @@ -82,4 +85,4 @@ copyContents = ([fileName, contents]) -> log "info", "creating #{fileName}" fs.writeFileSync fileName, contents -module.exports = {setupFileSystem, resetFileSystem} +module.exports = {setupFileSystem, resetFileSystem, setupFileSystemWithConfig}