Edit D:\AVA\AVAStandard\AVA.ResourcesPlatform.WebUI\CSS\zh-CN\NewtonTheme\assets\cheeking-machine.js
(function() { var $, CheekingMachine, DataBinder; $ = jQuery; this.settings = { id: "cm", credit: { image: { width: 300, height: 200 }, fadeIn: 20, title: { fontFamily: "???", fontColor: "#000000", fontSize: "12px", position: { x: 0, y: 0 }, textWidth: "200px", bold: true }, speaker: { fontFamily: "???", fontColor: "#000000", fontSize: "12px", position: { x: 0, y: 0 }, width: "200px", bold: true } }, trailer: { fadeOut: 20, title: { fontFamily: "???", fontColor: "#000000", fontSize: "12px", position: { x: 0, y: 0 }, width: "200px", bold: true }, speaker: { fontFamily: "???", fontColor: "#000000", fontSize: "12px", position: { x: 0, y: 0 }, width: "200px", bold: true } } }; DataBinder = (function() { function DataBinder(id) { var data_attr, message, pubSub; pubSub = $({}); data_attr = "bind-" + id; message = id + ":change"; $(document).on("change", "[data-" + data_attr + "]", function(e) { var $which; $which = $(this); return pubSub.trigger(message, [$which.data(data_attr), $which.val()]); }); pubSub.on(message, function(e, prop_name, newVal) { return $("[data-" + data_attr + "=" + prop_name + "]").each(function() { var $bound; $bound = $(this); if ($bound.is("input, textarea, select")) { return $bound.val(newVal); } else { return $bound.html(newVal); } }); }); this.pubSub = pubSub; } return DataBinder; })(); CheekingMachine = (function() { function CheekingMachine(args) { var binder, cm, id, _ref; _ref = [args.wrapper, args.settings, args.id], this.wrapper = _ref[0], this.settings = _ref[1], this.id = _ref[2]; binder = (new DataBinder(this.id)).pubSub; id = this.id; this.cm = { attributes: {}, set: function(attr_name, val) { this.attributes[attr_name] = val; binder.trigger(id + ":change", [attr_name, val, this]); return this; }, get: function(attr_name) { return this.attributes[attr_name]; }, _binder: binder }; cm = this.cm; binder.on(id + ":change", function(e, attr_name, new_value, initiator) { if (initiator !== cm) { return cm.set(attr_name, new_value); } }); this.binder = binder; this.bindDataWithUI(); return cm; } CheekingMachine.prototype.bindDataWithUI = function() { var $workspace, cm, uid, updateUI; uid = this.id; cm = this.cm; updateUI = this.updateUI; $("[data-bind-" + this.id + "]").each(function(idx, elem) { var $elem; $elem = $(elem); if ($elem.is("input, textarea, select")) { cm.set($elem.attr("data-bind-" + uid), $elem.val()); return $elem.on("keypress", { prop: $elem.attr("data-bind-" + uid) }, function(e) { if (e.keyCode === 13) { return updateUI($elem, e.data); } }); } else { return cm.set($elem.attr("data-bind-" + uid), $elem.html()); } }); this.workspace = $(this.wrapper).find("#cm-workspace"); this.tools = $(this.wrapper).find("#cm-tools"); $workspace = $(this.workspace); this.implDraggable("credit", "speaker"); this.implDraggable("credit", "title"); return this.initColorPicker(); }; CheekingMachine.prototype.updateUI = function($elem, data) { var $target, cm, prop, val, _ref; cm = this.cm; _ref = [data.prop, $elem.val()], prop = _ref[0], val = _ref[1]; prop = prop.substr(prop.lastIndexOf('-') + 1, prop.length); $target = $("." + $elem.attr("data-bind-target")); switch (prop) { case "fontSize": case "font-size": case "width": return $target.css(prop, val + "px"); } }; CheekingMachine.prototype.implDraggable = function(moduleName, itemName) { var $item, $module, $tools, cm, poX, poY, prop, reProportionPosition, _i, _len, _ref; cm = this.cm; $module = $($(this.workspace).find(".cm-" + moduleName)); $tools = $(this.tools); $item = $module.find(".cm-" + moduleName + "-" + itemName); poX = cm.get(moduleName + "-" + itemName + "-positionX"); poY = cm.get(moduleName + "-" + itemName + "-positionY"); if (poX !== null || poY !== null) { $item.offset({ left: poX, top: poY }); } _ref = ['font-size', 'font-weight', 'font-family', 'color', 'width']; for (_i = 0, _len = _ref.length; _i < _len; _i++) { prop = _ref[_i]; if (cm.get(moduleName + "-" + itemName + "-" + prop) !== null) { switch (prop) { case "font-size": $item.css(prop, cm.get(moduleName + "-" + itemName + "-" + prop) + "px"); break; default: $item.css(prop, cm.get(moduleName + "-" + itemName + "-" + prop)); } } } reProportionPosition = this.reProportionPosition; return $item.draggable({ cursor: "col-resize", containment: 'parent', refreshPositions: true, drag: function(event, ui) { var left, top, _ref1; _ref1 = reProportionPosition(ui.position.left, ui.position.top), left = _ref1[0], top = _ref1[1]; cm.set(moduleName + "-" + itemName + "-positionX", left); return cm.set(moduleName + "-" + itemName + "-positionY", top); } }); }; CheekingMachine.prototype.reProportionPosition = function(left, top) { return [this.scaleX * left, this.scaleY * top]; }; CheekingMachine.prototype.initColorPicker = function() { this.colorpickers = $(this.wrapper).find(".color-picker"); return $(this.colorpickers).each(function(idx, elem) { var $input; $input = $($(elem).parent().find("input")); $(elem).children("div").css('backgroundColor', '#' + $input.val()); return $(elem).ColorPicker({ onShow: function(colpkr) { return $(colpkr).fadeIn(500); }, onSubmit: function(hsb, hex, rgb, el) { $(el).val(hex); $(el).ColorPickerHide(); return $("." + $input.attr("data-bind-target")).css("color", "#" + hex); }, onBeforeShow: function() { return $(this).ColorPickerSetColor($input.val()); }, onHide: function(colpkr) { $(colpkr).fadeOut(500); return false; }, onChange: function(hsb, hex, rgb) { $(elem).children("div").css('backgroundColor', '#' + hex); $input.val(hex); return $("." + $input.attr("data-bind-target")).css("color", "#" + hex); } }); }).bind('keyup', function() { return $(this).ColorPickerSetColor($input.val()); }); }; CheekingMachine.prototype.onChangeColor = function() {}; return CheekingMachine; })(); $.fn.extend({ CheekingMachine: function(options) { this.settings = $.extend(settings, options); return this.each(function(idx, elem) { var cm; return cm = new CheekingMachine({ id: settings.id, wrapper: elem, settings: settings }); }); } }); }).call(this); //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbImNoZWVraW5nLW1hY2hpbmUuY29mZmVlIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBO0FBQUEsTUFBQSw4QkFBQTs7QUFBQSxFQUFBLENBQUEsR0FBSSxNQUFKLENBQUE7O0FBQUEsRUFFQSxJQUFDLENBQUEsUUFBRCxHQUNFO0FBQUEsSUFBQSxFQUFBLEVBQUksSUFBSjtBQUFBLElBQ0EsTUFBQSxFQUNFO0FBQUEsTUFBQSxLQUFBLEVBQ0U7QUFBQSxRQUFBLEtBQUEsRUFBTyxHQUFQO0FBQUEsUUFDQSxNQUFBLEVBQVEsR0FEUjtPQURGO0FBQUEsTUFHQSxNQUFBLEVBQVEsRUFIUjtBQUFBLE1BSUEsS0FBQSxFQUNFO0FBQUEsUUFBQSxVQUFBLEVBQVksSUFBWjtBQUFBLFFBQ0EsU0FBQSxFQUFXLFNBRFg7QUFBQSxRQUVBLFFBQUEsRUFBVSxNQUZWO0FBQUEsUUFHQSxRQUFBLEVBQ0k7QUFBQSxVQUFBLENBQUEsRUFBRyxDQUFIO0FBQUEsVUFDQSxDQUFBLEVBQUcsQ0FESDtTQUpKO0FBQUEsUUFNQSxTQUFBLEVBQVcsT0FOWDtBQUFBLFFBT0EsSUFBQSxFQUFNLElBUE47T0FMRjtBQUFBLE1BYUEsT0FBQSxFQUNFO0FBQUEsUUFBQSxVQUFBLEVBQVksSUFBWjtBQUFBLFFBQ0EsU0FBQSxFQUFXLFNBRFg7QUFBQSxRQUVBLFFBQUEsRUFBVSxNQUZWO0FBQUEsUUFHQSxRQUFBLEVBQ0k7QUFBQSxVQUFBLENBQUEsRUFBRyxDQUFIO0FBQUEsVUFDQSxDQUFBLEVBQUcsQ0FESDtTQUpKO0FBQUEsUUFNQSxLQUFBLEVBQU8sT0FOUDtBQUFBLFFBT0EsSUFBQSxFQUFNLElBUE47T0FkRjtLQUZGO0FBQUEsSUF3QkEsT0FBQSxFQUNFO0FBQUEsTUFBQSxPQUFBLEVBQVMsRUFBVDtBQUFBLE1BQ0EsS0FBQSxFQUNFO0FBQUEsUUFBQSxVQUFBLEVBQVksSUFBWjtBQUFBLFFBQ0EsU0FBQSxFQUFXLFNBRFg7QUFBQSxRQUVBLFFBQUEsRUFBVSxNQUZWO0FBQUEsUUFHQSxRQUFBLEVBQ0U7QUFBQSxVQUFBLENBQUEsRUFBRyxDQUFIO0FBQUEsVUFDQSxDQUFBLEVBQUcsQ0FESDtTQUpGO0FBQUEsUUFNQSxLQUFBLEVBQU8sT0FOUDtBQUFBLFFBT0EsSUFBQSxFQUFNLElBUE47T0FGRjtBQUFBLE1BVUEsT0FBQSxFQUNFO0FBQUEsUUFBQSxVQUFBLEVBQVksSUFBWjtBQUFBLFFBQ0EsU0FBQSxFQUFXLFNBRFg7QUFBQSxRQUVBLFFBQUEsRUFBVSxNQUZWO0FBQUEsUUFHQSxRQUFBLEVBQ0U7QUFBQSxVQUFBLENBQUEsRUFBRyxDQUFIO0FBQUEsVUFDQSxDQUFBLEVBQUcsQ0FESDtTQUpGO0FBQUEsUUFNQSxLQUFBLEVBQU8sT0FOUDtBQUFBLFFBT0EsSUFBQSxFQUFNLElBUE47T0FYRjtLQXpCRjtHQUhGLENBQUE7O0FBQUEsRUFpRE07QUFDUyxJQUFBLG9CQUFDLEVBQUQsR0FBQTtBQUNYLFVBQUEsMEJBQUE7QUFBQSxNQUFBLE1BQUEsR0FBUyxDQUFBLENBQUUsRUFBRixDQUFULENBQUE7QUFBQSxNQUNBLFNBQUEsR0FBWSxPQUFBLEdBQVEsRUFEcEIsQ0FBQTtBQUFBLE1BRUEsT0FBQSxHQUFVLEVBQUEsR0FBRyxTQUZiLENBQUE7QUFBQSxNQUlBLENBQUEsQ0FBRSxRQUFGLENBQVcsQ0FBQyxFQUFaLENBQWUsUUFBZixFQUF5QixRQUFBLEdBQVMsU0FBVCxHQUFtQixHQUE1QyxFQUFpRCxTQUFDLENBQUQsR0FBQTtBQUMvQyxZQUFBLE1BQUE7QUFBQSxRQUFBLE1BQUEsR0FBUyxDQUFBLENBQUUsSUFBRixDQUFULENBQUE7ZUFDQSxNQUFNLENBQUMsT0FBUCxDQUFlLE9BQWYsRUFBd0IsQ0FBRSxNQUFNLENBQUMsSUFBUCxDQUFZLFNBQVosQ0FBRixFQUEwQixNQUFNLENBQUMsR0FBUCxDQUFBLENBQTFCLENBQXhCLEVBRitDO01BQUEsQ0FBakQsQ0FKQSxDQUFBO0FBQUEsTUFRQSxNQUFNLENBQUMsRUFBUCxDQUFVLE9BQVYsRUFBbUIsU0FBQyxDQUFELEVBQUksU0FBSixFQUFlLE1BQWYsR0FBQTtlQUNqQixDQUFBLENBQUUsUUFBQSxHQUFTLFNBQVQsR0FBbUIsR0FBbkIsR0FBdUIsU0FBdkIsR0FBaUMsR0FBbkMsQ0FBdUMsQ0FBQyxJQUF4QyxDQUE2QyxTQUFBLEdBQUE7QUFDM0MsY0FBQSxNQUFBO0FBQUEsVUFBQSxNQUFBLEdBQVMsQ0FBQSxDQUFFLElBQUYsQ0FBVCxDQUFBO0FBQ0EsVUFBQSxJQUFHLE1BQU0sQ0FBQyxFQUFQLENBQVUseUJBQVYsQ0FBSDttQkFDRSxNQUFNLENBQUMsR0FBUCxDQUFXLE1BQVgsRUFERjtXQUFBLE1BQUE7bUJBR0UsTUFBTSxDQUFDLElBQVAsQ0FBWSxNQUFaLEVBSEY7V0FGMkM7UUFBQSxDQUE3QyxFQURpQjtNQUFBLENBQW5CLENBUkEsQ0FBQTtBQUFBLE1BZUEsSUFBQyxDQUFBLE1BQUQsR0FBVSxNQWZWLENBRFc7SUFBQSxDQUFiOztzQkFBQTs7TUFsREYsQ0FBQTs7QUFBQSxFQXlFTTtBQUNTLElBQUEseUJBQUMsSUFBRCxHQUFBO0FBRVgsVUFBQSxvQkFBQTtBQUFBLE1BQUEsT0FBNkIsQ0FBQyxJQUFJLENBQUMsT0FBTixFQUFlLElBQUksQ0FBQyxRQUFwQixFQUE4QixJQUFJLENBQUMsRUFBbkMsQ0FBN0IsRUFBQyxJQUFDLENBQUEsaUJBQUYsRUFBVyxJQUFDLENBQUEsa0JBQVosRUFBc0IsSUFBQyxDQUFBLFlBQXZCLENBQUE7QUFBQSxNQUlBLE1BQUEsR0FBUyxDQUFLLElBQUEsVUFBQSxDQUFXLElBQUMsQ0FBQSxFQUFaLENBQUwsQ0FBb0IsQ0FBQyxNQUo5QixDQUFBO0FBQUEsTUFNQSxFQUFBLEdBQUssSUFBQyxDQUFBLEVBTk4sQ0FBQTtBQUFBLE1BUUEsSUFBQyxDQUFBLEVBQUQsR0FDRTtBQUFBLFFBQUEsVUFBQSxFQUFZLEVBQVo7QUFBQSxRQUNBLEdBQUEsRUFBSyxTQUFDLFNBQUQsRUFBWSxHQUFaLEdBQUE7QUFDSCxVQUFBLElBQUMsQ0FBQSxVQUFZLENBQUEsU0FBQSxDQUFiLEdBQTJCLEdBQTNCLENBQUE7QUFBQSxVQUNBLE1BQU0sQ0FBQyxPQUFQLENBQWUsRUFBQSxHQUFLLFNBQXBCLEVBQStCLENBQUMsU0FBRCxFQUFZLEdBQVosRUFBaUIsSUFBakIsQ0FBL0IsQ0FEQSxDQUFBO2lCQUVBLEtBSEc7UUFBQSxDQURMO0FBQUEsUUFLQSxHQUFBLEVBQUssU0FBQyxTQUFELEdBQUE7aUJBQ0gsSUFBQyxDQUFBLFVBQVcsQ0FBQSxTQUFBLEVBRFQ7UUFBQSxDQUxMO0FBQUEsUUFPQSxPQUFBLEVBQVEsTUFQUjtPQVRGLENBQUE7QUFBQSxNQWtCQSxFQUFBLEdBQUssSUFBQyxDQUFBLEVBbEJOLENBQUE7QUFBQSxNQW9CQSxNQUFNLENBQUMsRUFBUCxDQUFVLEVBQUEsR0FBSyxTQUFmLEVBQTBCLFNBQUMsQ0FBRCxFQUFJLFNBQUosRUFBZSxTQUFmLEVBQTBCLFNBQTFCLEdBQUE7QUFDeEIsUUFBQSxJQUFrQyxTQUFBLEtBQWUsRUFBakQ7aUJBQUEsRUFBRSxDQUFDLEdBQUgsQ0FBUSxTQUFSLEVBQW1CLFNBQW5CLEVBQUE7U0FEd0I7TUFBQSxDQUExQixDQXBCQSxDQUFBO0FBQUEsTUF3QkEsSUFBQyxDQUFBLE1BQUQsR0FBVSxNQXhCVixDQUFBO0FBQUEsTUEyQkEsSUFBQyxDQUFBLGNBQUQsQ0FBQSxDQTNCQSxDQUFBO0FBNEJBLGFBQU8sRUFBUCxDQTlCVztJQUFBLENBQWI7O0FBQUEsOEJBaUNBLGNBQUEsR0FBZ0IsU0FBQSxHQUFBO0FBQ2QsVUFBQSw2QkFBQTtBQUFBLE1BQUEsR0FBQSxHQUFNLElBQUMsQ0FBQSxFQUFQLENBQUE7QUFBQSxNQUNBLEVBQUEsR0FBSyxJQUFDLENBQUEsRUFETixDQUFBO0FBQUEsTUFFQSxRQUFBLEdBQVcsSUFBQyxDQUFBLFFBRlosQ0FBQTtBQUFBLE1BSUEsQ0FBQSxDQUFFLGFBQUEsR0FBYyxJQUFDLENBQUEsRUFBZixHQUFrQixHQUFwQixDQUF3QixDQUFDLElBQXpCLENBQThCLFNBQUMsR0FBRCxFQUFNLElBQU4sR0FBQTtBQUM1QixZQUFBLEtBQUE7QUFBQSxRQUFBLEtBQUEsR0FBUSxDQUFBLENBQUUsSUFBRixDQUFSLENBQUE7QUFDQSxRQUFBLElBQUcsS0FBSyxDQUFDLEVBQU4sQ0FBUyx5QkFBVCxDQUFIO0FBRUUsVUFBQSxFQUFFLENBQUMsR0FBSCxDQUFPLEtBQUssQ0FBQyxJQUFOLENBQVcsWUFBQSxHQUFhLEdBQXhCLENBQVAsRUFBcUMsS0FBSyxDQUFDLEdBQU4sQ0FBQSxDQUFyQyxDQUFBLENBQUE7aUJBRUEsS0FBSyxDQUFDLEVBQU4sQ0FBUyxVQUFULEVBQXFCO0FBQUEsWUFBQyxJQUFBLEVBQUssS0FBSyxDQUFDLElBQU4sQ0FBVyxZQUFBLEdBQWEsR0FBeEIsQ0FBTjtXQUFyQixFQUF5RCxTQUFDLENBQUQsR0FBQTtBQUV2RCxZQUFBLElBQUcsQ0FBQyxDQUFDLE9BQUYsS0FBYSxFQUFoQjtxQkFDRSxRQUFBLENBQVMsS0FBVCxFQUFlLENBQUMsQ0FBQyxJQUFqQixFQURGO2FBRnVEO1VBQUEsQ0FBekQsRUFKRjtTQUFBLE1BQUE7aUJBU0UsRUFBRSxDQUFDLEdBQUgsQ0FBTyxLQUFLLENBQUMsSUFBTixDQUFXLFlBQUEsR0FBYSxHQUF4QixDQUFQLEVBQXFDLEtBQUssQ0FBQyxJQUFOLENBQUEsQ0FBckMsRUFURjtTQUY0QjtNQUFBLENBQTlCLENBSkEsQ0FBQTtBQUFBLE1Ba0JBLElBQUMsQ0FBQSxTQUFELEdBQWEsQ0FBQSxDQUFFLElBQUMsQ0FBQSxPQUFILENBQVcsQ0FBQyxJQUFaLENBQWlCLGVBQWpCLENBbEJiLENBQUE7QUFBQSxNQW1CQSxJQUFDLENBQUEsS0FBRCxHQUFTLENBQUEsQ0FBRSxJQUFDLENBQUEsT0FBSCxDQUFXLENBQUMsSUFBWixDQUFpQixXQUFqQixDQW5CVCxDQUFBO0FBQUEsTUFvQkEsVUFBQSxHQUFhLENBQUEsQ0FBRSxJQUFDLENBQUEsU0FBSCxDQXBCYixDQUFBO0FBQUEsTUF3QkEsSUFBQyxDQUFBLGFBQUQsQ0FBZ0IsUUFBaEIsRUFBMEIsU0FBMUIsQ0F4QkEsQ0FBQTtBQUFBLE1BeUJBLElBQUMsQ0FBQSxhQUFELENBQWdCLFFBQWhCLEVBQTBCLE9BQTFCLENBekJBLENBQUE7YUEyQkEsSUFBQyxDQUFBLGVBQUQsQ0FBQSxFQTVCYztJQUFBLENBakNoQixDQUFBOztBQUFBLDhCQWdFQSxRQUFBLEdBQVUsU0FBQyxLQUFELEVBQVEsSUFBUixHQUFBO0FBQ1IsVUFBQSw0QkFBQTtBQUFBLE1BQUEsRUFBQSxHQUFLLElBQUMsQ0FBQSxFQUFOLENBQUE7QUFBQSxNQUNBLE9BQWMsQ0FBQyxJQUFJLENBQUMsSUFBTixFQUFZLEtBQUssQ0FBQyxHQUFOLENBQUEsQ0FBWixDQUFkLEVBQUMsY0FBRCxFQUFPLGFBRFAsQ0FBQTtBQUFBLE1BSUEsSUFBQSxHQUFPLElBQUksQ0FBQyxNQUFMLENBQVksSUFBSSxDQUFDLFdBQUwsQ0FBaUIsR0FBakIsQ0FBQSxHQUFzQixDQUFsQyxFQUFxQyxJQUFJLENBQUMsTUFBMUMsQ0FKUCxDQUFBO0FBQUEsTUFLQSxPQUFBLEdBQVUsQ0FBQSxDQUFFLEdBQUEsR0FBSSxLQUFLLENBQUMsSUFBTixDQUFXLGtCQUFYLENBQU4sQ0FMVixDQUFBO0FBT0EsY0FBTyxJQUFQO0FBQUEsYUFDTyxVQURQO0FBQUEsYUFDbUIsV0FEbkI7QUFBQSxhQUMrQixPQUQvQjtpQkFFSSxPQUFPLENBQUMsR0FBUixDQUFZLElBQVosRUFBa0IsR0FBQSxHQUFJLElBQXRCLEVBRko7QUFBQSxPQVJRO0lBQUEsQ0FoRVYsQ0FBQTs7QUFBQSw4QkE4RUEsYUFBQSxHQUFlLFNBQUUsVUFBRixFQUFjLFFBQWQsR0FBQTtBQUNiLFVBQUEsZ0ZBQUE7QUFBQSxNQUFBLEVBQUEsR0FBSyxJQUFDLENBQUEsRUFBTixDQUFBO0FBQUEsTUFFQSxPQUFBLEdBQVUsQ0FBQSxDQUFFLENBQUEsQ0FBRSxJQUFDLENBQUEsU0FBSCxDQUFhLENBQUMsSUFBZCxDQUFtQixNQUFBLEdBQU8sVUFBMUIsQ0FBRixDQUZWLENBQUE7QUFBQSxNQUdBLE1BQUEsR0FBUyxDQUFBLENBQUUsSUFBQyxDQUFBLEtBQUgsQ0FIVCxDQUFBO0FBQUEsTUFLQSxLQUFBLEdBQVEsT0FBTyxDQUFDLElBQVIsQ0FBYSxNQUFBLEdBQU8sVUFBUCxHQUFrQixHQUFsQixHQUFzQixRQUFuQyxDQUxSLENBQUE7QUFBQSxNQU9BLEdBQUEsR0FBTSxFQUFFLENBQUMsR0FBSCxDQUFPLFVBQUEsR0FBVyxHQUFYLEdBQWUsUUFBZixHQUF3QixZQUEvQixDQVBOLENBQUE7QUFBQSxNQVFBLEdBQUEsR0FBTSxFQUFFLENBQUMsR0FBSCxDQUFPLFVBQUEsR0FBVyxHQUFYLEdBQWUsUUFBZixHQUF3QixZQUEvQixDQVJOLENBQUE7QUFXQSxNQUFBLElBQUcsR0FBQSxLQUFTLElBQVQsSUFBaUIsR0FBQSxLQUFTLElBQTdCO0FBQ0UsUUFBQSxLQUFLLENBQUMsTUFBTixDQUNFO0FBQUEsVUFBQSxJQUFBLEVBQU0sR0FBTjtBQUFBLFVBQ0EsR0FBQSxFQUFLLEdBREw7U0FERixDQUFBLENBREY7T0FYQTtBQWdCQTtBQUFBLFdBQUEsMkNBQUE7d0JBQUE7QUFFRSxRQUFBLElBQUcsRUFBRSxDQUFDLEdBQUgsQ0FBTyxVQUFBLEdBQVcsR0FBWCxHQUFlLFFBQWYsR0FBd0IsR0FBeEIsR0FBNEIsSUFBbkMsQ0FBQSxLQUE4QyxJQUFqRDtBQUNFLGtCQUFPLElBQVA7QUFBQSxpQkFDTyxXQURQO0FBRUksY0FBQSxLQUFLLENBQUMsR0FBTixDQUFVLElBQVYsRUFBZ0IsRUFBRSxDQUFDLEdBQUgsQ0FBTyxVQUFBLEdBQVcsR0FBWCxHQUFlLFFBQWYsR0FBd0IsR0FBeEIsR0FBNEIsSUFBbkMsQ0FBQSxHQUF5QyxJQUF6RCxDQUFBLENBRko7QUFDTztBQURQO0FBSUksY0FBQSxLQUFLLENBQUMsR0FBTixDQUFVLElBQVYsRUFBZ0IsRUFBRSxDQUFDLEdBQUgsQ0FBTyxVQUFBLEdBQVcsR0FBWCxHQUFlLFFBQWYsR0FBd0IsR0FBeEIsR0FBNEIsSUFBbkMsQ0FBaEIsQ0FBQSxDQUpKO0FBQUEsV0FERjtTQUZGO0FBQUEsT0FoQkE7QUFBQSxNQXlCQSxvQkFBQSxHQUF1QixJQUFDLENBQUEsb0JBekJ4QixDQUFBO2FBMEJBLEtBQUssQ0FBQyxTQUFOLENBQ0U7QUFBQSxRQUFBLE1BQUEsRUFBUSxZQUFSO0FBQUEsUUFDQSxXQUFBLEVBQWEsUUFEYjtBQUFBLFFBRUEsZ0JBQUEsRUFBa0IsSUFGbEI7QUFBQSxRQUdBLElBQUEsRUFBTyxTQUFDLEtBQUQsRUFBTyxFQUFQLEdBQUE7QUFJTCxjQUFBLGdCQUFBO0FBQUEsVUFBQSxRQUFjLG9CQUFBLENBQXNCLEVBQUUsQ0FBQyxRQUFRLENBQUMsSUFBbEMsRUFBeUMsRUFBRSxDQUFDLFFBQVEsQ0FBQyxHQUFyRCxDQUFkLEVBQUMsZUFBRCxFQUFPLGNBQVAsQ0FBQTtBQUFBLFVBQ0EsRUFBRSxDQUFDLEdBQUgsQ0FBTyxVQUFBLEdBQVcsR0FBWCxHQUFlLFFBQWYsR0FBd0IsWUFBL0IsRUFBNkMsSUFBN0MsQ0FEQSxDQUFBO2lCQUVBLEVBQUUsQ0FBQyxHQUFILENBQU8sVUFBQSxHQUFXLEdBQVgsR0FBZSxRQUFmLEdBQXdCLFlBQS9CLEVBQTZDLEdBQTdDLEVBTks7UUFBQSxDQUhQO09BREYsRUEzQmE7SUFBQSxDQTlFZixDQUFBOztBQUFBLDhCQXFIQSxvQkFBQSxHQUFzQixTQUFDLElBQUQsRUFBTyxHQUFQLEdBQUE7YUFDcEIsQ0FBQyxJQUFDLENBQUEsTUFBRCxHQUFVLElBQVgsRUFBaUIsSUFBQyxDQUFBLE1BQUQsR0FBVSxHQUEzQixFQURvQjtJQUFBLENBckh0QixDQUFBOztBQUFBLDhCQXdIQSxlQUFBLEdBQWlCLFNBQUEsR0FBQTtBQUNmLE1BQUEsSUFBQyxDQUFBLFlBQUQsR0FBZ0IsQ0FBQSxDQUFFLElBQUMsQ0FBQSxPQUFILENBQVcsQ0FBQyxJQUFaLENBQWlCLGVBQWpCLENBQWhCLENBQUE7YUFHQSxDQUFBLENBQUUsSUFBQyxDQUFBLFlBQUgsQ0FBZ0IsQ0FBQyxJQUFqQixDQUFzQixTQUFDLEdBQUQsRUFBTSxJQUFOLEdBQUE7QUFFcEIsWUFBQSxNQUFBO0FBQUEsUUFBQSxNQUFBLEdBQVMsQ0FBQSxDQUFFLENBQUEsQ0FBRSxJQUFGLENBQU8sQ0FBQyxNQUFSLENBQUEsQ0FBZ0IsQ0FBQyxJQUFqQixDQUFzQixPQUF0QixDQUFGLENBQVQsQ0FBQTtBQUFBLFFBQ0EsQ0FBQSxDQUFFLElBQUYsQ0FBUSxDQUFDLFFBQVQsQ0FBa0IsS0FBbEIsQ0FBd0IsQ0FBQyxHQUF6QixDQUE2QixpQkFBN0IsRUFBZ0QsR0FBQSxHQUFJLE1BQU0sQ0FBQyxHQUFQLENBQUEsQ0FBcEQsQ0FEQSxDQUFBO2VBRUEsQ0FBQSxDQUFFLElBQUYsQ0FBTyxDQUFDLFdBQVIsQ0FDRTtBQUFBLFVBQUEsTUFBQSxFQUFRLFNBQUMsTUFBRCxHQUFBO21CQUNOLENBQUEsQ0FBRSxNQUFGLENBQVMsQ0FBQyxNQUFWLENBQWlCLEdBQWpCLEVBRE07VUFBQSxDQUFSO0FBQUEsVUFHQSxRQUFBLEVBQVUsU0FBQyxHQUFELEVBQU0sR0FBTixFQUFXLEdBQVgsRUFBZ0IsRUFBaEIsR0FBQTtBQUNSLFlBQUEsQ0FBQSxDQUFFLEVBQUYsQ0FBSyxDQUFDLEdBQU4sQ0FBVSxHQUFWLENBQUEsQ0FBQTtBQUFBLFlBQ0EsQ0FBQSxDQUFFLEVBQUYsQ0FBSyxDQUFDLGVBQU4sQ0FBQSxDQURBLENBQUE7bUJBRUEsQ0FBQSxDQUFFLEdBQUEsR0FBSSxNQUFNLENBQUMsSUFBUCxDQUFZLGtCQUFaLENBQU4sQ0FBc0MsQ0FBQyxHQUF2QyxDQUEyQyxPQUEzQyxFQUFvRCxHQUFBLEdBQUksR0FBeEQsRUFIUTtVQUFBLENBSFY7QUFBQSxVQVFBLFlBQUEsRUFBYyxTQUFBLEdBQUE7bUJBQ1osQ0FBQSxDQUFFLElBQUYsQ0FBTyxDQUFDLG1CQUFSLENBQTRCLE1BQU0sQ0FBQyxHQUFQLENBQUEsQ0FBNUIsRUFEWTtVQUFBLENBUmQ7QUFBQSxVQVlBLE1BQUEsRUFBUyxTQUFDLE1BQUQsR0FBQTtBQUNQLFlBQUEsQ0FBQSxDQUFFLE1BQUYsQ0FBUyxDQUFDLE9BQVYsQ0FBa0IsR0FBbEIsQ0FBQSxDQUFBO21CQUNBLE1BRk87VUFBQSxDQVpUO0FBQUEsVUFnQkEsUUFBQSxFQUFVLFNBQUMsR0FBRCxFQUFNLEdBQU4sRUFBVyxHQUFYLEdBQUE7QUFDUixZQUFBLENBQUEsQ0FBRSxJQUFGLENBQVEsQ0FBQyxRQUFULENBQWtCLEtBQWxCLENBQXdCLENBQUMsR0FBekIsQ0FBNkIsaUJBQTdCLEVBQWdELEdBQUEsR0FBSSxHQUFwRCxDQUFBLENBQUE7QUFBQSxZQUVBLE1BQU0sQ0FBQyxHQUFQLENBQVcsR0FBWCxDQUZBLENBQUE7bUJBR0EsQ0FBQSxDQUFFLEdBQUEsR0FBSSxNQUFNLENBQUMsSUFBUCxDQUFZLGtCQUFaLENBQU4sQ0FBc0MsQ0FBQyxHQUF2QyxDQUEyQyxPQUEzQyxFQUFvRCxHQUFBLEdBQUksR0FBeEQsRUFKUTtVQUFBLENBaEJWO1NBREYsRUFKb0I7TUFBQSxDQUF0QixDQTJCQSxDQUFDLElBM0JELENBMkJNLE9BM0JOLEVBMkJlLFNBQUEsR0FBQTtlQUNiLENBQUEsQ0FBRSxJQUFGLENBQU8sQ0FBQyxtQkFBUixDQUE0QixNQUFNLENBQUMsR0FBUCxDQUFBLENBQTVCLEVBRGE7TUFBQSxDQTNCZixFQUplO0lBQUEsQ0F4SGpCLENBQUE7O0FBQUEsOEJBMkpBLGFBQUEsR0FBZSxTQUFBLEdBQUEsQ0EzSmYsQ0FBQTs7MkJBQUE7O01BMUVGLENBQUE7O0FBQUEsRUF3T0EsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxNQUFMLENBQ0U7QUFBQSxJQUFBLGVBQUEsRUFBaUIsU0FBQyxPQUFELEdBQUE7QUFFZixNQUFBLElBQUMsQ0FBQSxRQUFELEdBQVksQ0FBQyxDQUFDLE1BQUYsQ0FBUyxRQUFULEVBQW1CLE9BQW5CLENBQVosQ0FBQTtBQUNBLGFBQU8sSUFBQyxDQUFBLElBQUQsQ0FBTSxTQUFDLEdBQUQsRUFBTSxJQUFOLEdBQUE7QUFDWCxZQUFBLEVBQUE7ZUFBQSxFQUFBLEdBQVMsSUFBQSxlQUFBLENBQ1A7QUFBQSxVQUFBLEVBQUEsRUFBSSxRQUFRLENBQUMsRUFBYjtBQUFBLFVBQ0EsT0FBQSxFQUFTLElBRFQ7QUFBQSxVQUVBLFFBQUEsRUFBVSxRQUZWO1NBRE8sRUFERTtNQUFBLENBQU4sQ0FBUCxDQUhlO0lBQUEsQ0FBakI7R0FERixDQXhPQSxDQUFBO0FBQUEiLCJmaWxlIjoiY2hlZWtpbmctbWFjaGluZS5qcyIsInNvdXJjZVJvb3QiOiIvc291cmNlLyIsInNvdXJjZXNDb250ZW50IjpbIiQgPSBqUXVlcnlcclxuXHJcbkBzZXR0aW5ncyA9IFxyXG4gIGlkOiBcImNtXCJcclxuICBjcmVkaXQ6IFxyXG4gICAgaW1hZ2U6XHJcbiAgICAgIHdpZHRoOiAzMDBcclxuICAgICAgaGVpZ2h0OiAyMDBcclxuICAgIGZhZGVJbjogMjBcclxuICAgIHRpdGxlOlxyXG4gICAgICBmb250RmFtaWx5OiBcIum7keS9k1wiXHJcbiAgICAgIGZvbnRDb2xvcjogXCIjMDAwMDAwXCJcclxuICAgICAgZm9udFNpemU6IFwiMTJweFwiXHJcbiAgICAgIHBvc2l0aW9uOlxyXG4gICAgICAgICAgeDogMFxyXG4gICAgICAgICAgeTogMFxyXG4gICAgICB0ZXh0V2lkdGg6IFwiMjAwcHhcIlxyXG4gICAgICBib2xkOiB0cnVlXHJcbiAgICBzcGVha2VyOlxyXG4gICAgICBmb250RmFtaWx5OiBcIum7keS9k1wiXHJcbiAgICAgIGZvbnRDb2xvcjogXCIjMDAwMDAwXCJcclxuICAgICAgZm9udFNpemU6IFwiMTJweFwiXHJcbiAgICAgIHBvc2l0aW9uOlxyXG4gICAgICAgICAgeDogMFxyXG4gICAgICAgICAgeTogMFxyXG4gICAgICB3aWR0aDogXCIyMDBweFwiXHJcbiAgICAgIGJvbGQ6IHRydWVcclxuICB0cmFpbGVyOiBcclxuICAgIGZhZGVPdXQ6IDIwXHJcbiAgICB0aXRsZTpcclxuICAgICAgZm9udEZhbWlseTogXCLpu5HkvZNcIlxyXG4gICAgICBmb250Q29sb3I6IFwiIzAwMDAwMFwiXHJcbiAgICAgIGZvbnRTaXplOiBcIjEycHhcIlxyXG4gICAgICBwb3NpdGlvbjpcclxuICAgICAgICB4OiAwXHJcbiAgICAgICAgeTogMFxyXG4gICAgICB3aWR0aDogXCIyMDBweFwiXHJcbiAgICAgIGJvbGQ6IHRydWVcclxuICAgIHNwZWFrZXI6XHJcbiAgICAgIGZvbnRGYW1pbHk6IFwi6buR5L2TXCJcclxuICAgICAgZm9udENvbG9yOiBcIiMwMDAwMDBcIlxyXG4gICAgICBmb250U2l6ZTogXCIxMnB4XCJcclxuICAgICAgcG9zaXRpb246XHJcbiAgICAgICAgeDogMFxyXG4gICAgICAgIHk6IDBcclxuICAgICAgd2lkdGg6IFwiMjAwcHhcIlxyXG4gICAgICBib2xkOiB0cnVlXHJcblxyXG5cclxuY2xhc3MgRGF0YUJpbmRlciBcclxuICBjb25zdHJ1Y3RvcjogKGlkKSAtPlxyXG4gICAgcHViU3ViID0gJCh7fSlcclxuICAgIGRhdGFfYXR0ciA9IFwiYmluZC1cIitpZFxyXG4gICAgbWVzc2FnZSA9IGlkK1wiOmNoYW5nZVwiXHJcbiAgICBcclxuICAgICQoZG9jdW1lbnQpLm9uIFwiY2hhbmdlXCIsIFwiW2RhdGEtXCIrZGF0YV9hdHRyK1wiXVwiLCAoZSkgLT5cclxuICAgICAgJHdoaWNoID0gJCh0aGlzKVxyXG4gICAgICBwdWJTdWIudHJpZ2dlciBtZXNzYWdlLCBbICR3aGljaC5kYXRhKGRhdGFfYXR0ciksICR3aGljaC52YWwoKV1cclxuICAgIFxyXG4gICAgcHViU3ViLm9uIG1lc3NhZ2UsIChlLCBwcm9wX25hbWUsIG5ld1ZhbCkgLT5cclxuICAgICAgJChcIltkYXRhLVwiK2RhdGFfYXR0citcIj1cIitwcm9wX25hbWUrXCJdXCIpLmVhY2ggLT5cclxuICAgICAgICAkYm91bmQgPSAkKHRoaXMpXHJcbiAgICAgICAgaWYgJGJvdW5kLmlzKFwiaW5wdXQsIHRleHRhcmVhLCBzZWxlY3RcIilcclxuICAgICAgICAgICRib3VuZC52YWwgbmV3VmFsXHJcbiAgICAgICAgZWxzZVxyXG4gICAgICAgICAgJGJvdW5kLmh0bWwgbmV3VmFsXHJcbiAgICBAcHViU3ViID0gcHViU3ViXHJcblxyXG5cclxuXHJcblxyXG5cclxuXHJcbmNsYXNzIENoZWVraW5nTWFjaGluZVxyXG4gIGNvbnN0cnVjdG9yOiAoYXJncykgLT5cclxuXHJcbiAgICBbQHdyYXBwZXIsIEBzZXR0aW5ncywgQGlkXSA9IFthcmdzLndyYXBwZXIsIGFyZ3Muc2V0dGluZ3MsIGFyZ3MuaWRdXHJcblxyXG5cclxuICBcclxuICAgIGJpbmRlciA9IChuZXcgRGF0YUJpbmRlciBAaWQpLnB1YlN1YlxyXG5cclxuICAgIGlkID0gQGlkXHJcblxyXG4gICAgQGNtID1cclxuICAgICAgYXR0cmlidXRlczoge31cclxuICAgICAgc2V0OiAoYXR0cl9uYW1lLCB2YWwpIC0+XHJcbiAgICAgICAgQGF0dHJpYnV0ZXNbIGF0dHJfbmFtZSBdID0gdmFsXHJcbiAgICAgICAgYmluZGVyLnRyaWdnZXIgaWQgKyBcIjpjaGFuZ2VcIiwgW2F0dHJfbmFtZSwgdmFsLCBAXVxyXG4gICAgICAgIEBcclxuICAgICAgZ2V0OiAoYXR0cl9uYW1lKSAtPlxyXG4gICAgICAgIEBhdHRyaWJ1dGVzW2F0dHJfbmFtZV1cclxuICAgICAgX2JpbmRlcjpiaW5kZXJcclxuXHJcbiAgICBjbSA9IEBjbVxyXG5cclxuICAgIGJpbmRlci5vbiBpZCArIFwiOmNoYW5nZVwiLCAoZSwgYXR0cl9uYW1lLCBuZXdfdmFsdWUsIGluaXRpYXRvciktPlxyXG4gICAgICBjbS5zZXQoIGF0dHJfbmFtZSwgbmV3X3ZhbHVlICkgaWYgaW5pdGlhdG9yIGlzbnQgY21cclxuXHJcblxyXG4gICAgQGJpbmRlciA9IGJpbmRlciBcclxuXHJcblxyXG4gICAgQGJpbmREYXRhV2l0aFVJKClcclxuICAgIHJldHVybiBjbVxyXG5cclxuXHJcbiAgYmluZERhdGFXaXRoVUk6ICgpIC0+XHJcbiAgICB1aWQgPSBAaWRcclxuICAgIGNtID0gQGNtXHJcbiAgICB1cGRhdGVVSSA9IEB1cGRhdGVVSVxyXG5cclxuICAgICQoXCJbZGF0YS1iaW5kLVwiK0BpZCtcIl1cIikuZWFjaCAoaWR4LCBlbGVtKS0+XHJcbiAgICAgICRlbGVtID0gJChlbGVtKVxyXG4gICAgICBpZiAkZWxlbS5pcyBcImlucHV0LCB0ZXh0YXJlYSwgc2VsZWN0XCJcclxuXHJcbiAgICAgICAgY20uc2V0ICRlbGVtLmF0dHIoXCJkYXRhLWJpbmQtXCIrdWlkKSwgJGVsZW0udmFsKClcclxuXHJcbiAgICAgICAgJGVsZW0ub24gXCJrZXlwcmVzc1wiLCB7cHJvcDokZWxlbS5hdHRyKFwiZGF0YS1iaW5kLVwiK3VpZCl9LChlKS0+XHJcbiAgICAgICAgICAjIGNvbnNvbGUubG9nIFwidXBkYXRlVUlcIiAsZS5rZXlDb2RlXHJcbiAgICAgICAgICBpZiBlLmtleUNvZGUgPT0gMTMgICAgXHJcbiAgICAgICAgICAgIHVwZGF0ZVVJKCRlbGVtLGUuZGF0YSlcclxuICAgICAgZWxzZVxyXG4gICAgICAgIGNtLnNldCAkZWxlbS5hdHRyKFwiZGF0YS1iaW5kLVwiK3VpZCksICRlbGVtLmh0bWwoKVxyXG5cclxuXHJcbiAgICBAd29ya3NwYWNlID0gJChAd3JhcHBlcikuZmluZChcIiNjbS13b3Jrc3BhY2VcIilcclxuICAgIEB0b29scyA9ICQoQHdyYXBwZXIpLmZpbmQoXCIjY20tdG9vbHNcIilcclxuICAgICR3b3Jrc3BhY2UgPSAkKEB3b3Jrc3BhY2UpXHJcblxyXG5cclxuXHJcbiAgICBAaW1wbERyYWdnYWJsZSAgXCJjcmVkaXRcIiwgXCJzcGVha2VyXCIgXHJcbiAgICBAaW1wbERyYWdnYWJsZSAgXCJjcmVkaXRcIiwgXCJ0aXRsZVwiXHJcblxyXG4gICAgQGluaXRDb2xvclBpY2tlcigpXHJcblxyXG5cclxuICB1cGRhdGVVSTogKCRlbGVtLCBkYXRhKSAtPlxyXG4gICAgY20gPSBAY21cclxuICAgIFtwcm9wLCB2YWxdID0gW2RhdGEucHJvcCwgJGVsZW0udmFsKCldXHJcbiAgICBcclxuXHJcbiAgICBwcm9wID0gcHJvcC5zdWJzdHIgcHJvcC5sYXN0SW5kZXhPZignLScpKzEsIHByb3AubGVuZ3RoXHJcbiAgICAkdGFyZ2V0ID0gJChcIi5cIiskZWxlbS5hdHRyKFwiZGF0YS1iaW5kLXRhcmdldFwiKSlcclxuICAgICMgY29uc29sZS5sb2cgXCJ1cGRhdGVVSVwiICwgZGF0YSAsICRlbGVtLmF0dHIoXCJkYXRhLWJpbmQtdGFyZ2V0XCIpLCAkdGFyZ2V0XHJcbiAgICBzd2l0Y2ggcHJvcCBcclxuICAgICAgd2hlbiBcImZvbnRTaXplXCIsIFwiZm9udC1zaXplXCIsXCJ3aWR0aFwiXHJcbiAgICAgICAgJHRhcmdldC5jc3MgcHJvcCwgdmFsK1wicHhcIlxyXG5cclxuXHJcblxyXG4gIGltcGxEcmFnZ2FibGU6ICggbW9kdWxlTmFtZSwgaXRlbU5hbWUpIC0+XHJcbiAgICBjbSA9IEBjbVxyXG5cclxuICAgICRtb2R1bGUgPSAkKCQoQHdvcmtzcGFjZSkuZmluZChcIi5jbS1cIittb2R1bGVOYW1lKSApXHJcbiAgICAkdG9vbHMgPSAkKEB0b29scylcclxuXHJcbiAgICAkaXRlbSA9ICRtb2R1bGUuZmluZChcIi5jbS1cIittb2R1bGVOYW1lK1wiLVwiK2l0ZW1OYW1lKVxyXG5cclxuICAgIHBvWCA9IGNtLmdldCBtb2R1bGVOYW1lK1wiLVwiK2l0ZW1OYW1lK1wiLXBvc2l0aW9uWFwiXHJcbiAgICBwb1kgPSBjbS5nZXQgbW9kdWxlTmFtZStcIi1cIitpdGVtTmFtZStcIi1wb3NpdGlvbllcIlxyXG5cclxuICAgIFxyXG4gICAgaWYgcG9YIGlzbnQgbnVsbCBvciBwb1kgaXNudCBudWxsXHJcbiAgICAgICRpdGVtLm9mZnNldCBcclxuICAgICAgICBsZWZ0OiBwb1hcclxuICAgICAgICB0b3A6IHBvWVxyXG5cclxuICAgIGZvciBwcm9wIGluIFsnZm9udC1zaXplJywgJ2ZvbnQtd2VpZ2h0JywgJ2ZvbnQtZmFtaWx5JywgJ2NvbG9yJywgJ3dpZHRoJ11cclxuICAgICAgIyBjb25zb2xlLmxvZyBcInByb3BcIixjbS5nZXQobW9kdWxlTmFtZStcIi1cIitpdGVtTmFtZStcIi1cIitwcm9wKVxyXG4gICAgICBpZiBjbS5nZXQobW9kdWxlTmFtZStcIi1cIitpdGVtTmFtZStcIi1cIitwcm9wKSBpc250IG51bGxcclxuICAgICAgICBzd2l0Y2ggcHJvcCBcclxuICAgICAgICAgIHdoZW4gXCJmb250LXNpemVcIlxyXG4gICAgICAgICAgICAkaXRlbS5jc3MgcHJvcCwgY20uZ2V0KG1vZHVsZU5hbWUrXCItXCIraXRlbU5hbWUrXCItXCIrcHJvcCkrXCJweFwiXHJcbiAgICAgICAgICBlbHNlXHJcbiAgICAgICAgICAgICRpdGVtLmNzcyBwcm9wLCBjbS5nZXQobW9kdWxlTmFtZStcIi1cIitpdGVtTmFtZStcIi1cIitwcm9wKSBcclxuXHJcbiAgICByZVByb3BvcnRpb25Qb3NpdGlvbiA9IEByZVByb3BvcnRpb25Qb3NpdGlvblxyXG4gICAgJGl0ZW0uZHJhZ2dhYmxlXHJcbiAgICAgIGN1cnNvcjogXCJjb2wtcmVzaXplXCJcclxuICAgICAgY29udGFpbm1lbnQ6ICdwYXJlbnQnXHJcbiAgICAgIHJlZnJlc2hQb3NpdGlvbnM6IHRydWVcclxuICAgICAgZHJhZyA6IChldmVudCx1aSkgLT5cclxuICAgICMgJHRvb2xzLmZpbmQoXCIjY20tXCIrbW9kdWxlTmFtZStcIi1cIitpdGVtTmFtZStcIi14XCIpLnZhbCh1aS5wb3NpdGlvbi5sZWZ0KVxyXG4gICAgIyAkdG9vbHMuZmluZChcIiNjbS1cIittb2R1bGVOYW1lK1wiLVwiK2l0ZW1OYW1lK1wiLXlcIikudmFsKHVpLnBvc2l0aW9uLnRvcClcclxuXHJcbiAgICAgICAgW2xlZnQsIHRvcF0gPSByZVByb3BvcnRpb25Qb3NpdGlvbiggdWkucG9zaXRpb24ubGVmdCwgIHVpLnBvc2l0aW9uLnRvcCApXHJcbiAgICAgICAgY20uc2V0IG1vZHVsZU5hbWUrXCItXCIraXRlbU5hbWUrXCItcG9zaXRpb25YXCIsIGxlZnRcclxuICAgICAgICBjbS5zZXQgbW9kdWxlTmFtZStcIi1cIitpdGVtTmFtZStcIi1wb3NpdGlvbllcIiwgdG9wXHJcblxyXG4gIHJlUHJvcG9ydGlvblBvc2l0aW9uOiAobGVmdCwgdG9wKS0+XHJcbiAgICBbQHNjYWxlWCAqIGxlZnQsIEBzY2FsZVkgKiB0b3BdXHJcblxyXG4gIGluaXRDb2xvclBpY2tlcjogKCktPlxyXG4gICAgQGNvbG9ycGlja2VycyA9ICQoQHdyYXBwZXIpLmZpbmQoXCIuY29sb3ItcGlja2VyXCIpXHJcblxyXG4gICAgXHJcbiAgICAkKEBjb2xvcnBpY2tlcnMpLmVhY2ggKGlkeCwgZWxlbSkgLT5cclxuXHJcbiAgICAgICRpbnB1dCA9ICQoJChlbGVtKS5wYXJlbnQoKS5maW5kKFwiaW5wdXRcIikpXHJcbiAgICAgICQoZWxlbSApLmNoaWxkcmVuKFwiZGl2XCIpLmNzcygnYmFja2dyb3VuZENvbG9yJywgJyMnKyRpbnB1dC52YWwoKSlcclxuICAgICAgJChlbGVtKS5Db2xvclBpY2tlclxyXG4gICAgICAgIG9uU2hvdzogKGNvbHBrcikgLT5cclxuICAgICAgICAgICQoY29scGtyKS5mYWRlSW4oNTAwKVxyXG5cclxuICAgICAgICBvblN1Ym1pdDogKGhzYiwgaGV4LCByZ2IsIGVsKS0+XHJcbiAgICAgICAgICAkKGVsKS52YWwoaGV4KVxyXG4gICAgICAgICAgJChlbCkuQ29sb3JQaWNrZXJIaWRlKClcclxuICAgICAgICAgICQoXCIuXCIrJGlucHV0LmF0dHIoXCJkYXRhLWJpbmQtdGFyZ2V0XCIpKS5jc3MoXCJjb2xvclwiLCBcIiNcIitoZXgpXHJcbiAgICAgICBcclxuICAgICAgICBvbkJlZm9yZVNob3c6ICgpLT5cclxuICAgICAgICAgICQodGhpcykuQ29sb3JQaWNrZXJTZXRDb2xvcigkaW5wdXQudmFsKCkpXHJcblxyXG5cclxuICAgICAgICBvbkhpZGU6ICAoY29scGtyKSAtPlxyXG4gICAgICAgICAgJChjb2xwa3IpLmZhZGVPdXQoNTAwKVxyXG4gICAgICAgICAgZmFsc2VcclxuXHJcbiAgICAgICAgb25DaGFuZ2U6IChoc2IsIGhleCwgcmdiKSAtPlxyXG4gICAgICAgICAgJChlbGVtICkuY2hpbGRyZW4oXCJkaXZcIikuY3NzKCdiYWNrZ3JvdW5kQ29sb3InLCAnIycraGV4KVxyXG4gICAgICAgICAgIyBjaGFuZ2VDb2xvci5hcHBseShALCBbaGV4XSlcclxuICAgICAgICAgICRpbnB1dC52YWwoaGV4KVxyXG4gICAgICAgICAgJChcIi5cIiskaW5wdXQuYXR0cihcImRhdGEtYmluZC10YXJnZXRcIikpLmNzcyhcImNvbG9yXCIsIFwiI1wiK2hleClcclxuICAgICAgICAgICAgICAjICQoJyNjb2xvclNlbGVjdG9yIGRpdicpLmNzcygnYmFja2dyb3VuZENvbG9yJywgJyMnICsgaGV4KVxyXG4gICAgLmJpbmQgJ2tleXVwJywgKCktPlxyXG4gICAgICAkKHRoaXMpLkNvbG9yUGlja2VyU2V0Q29sb3IoJGlucHV0LnZhbCgpKVxyXG5cclxuXHJcbiAgb25DaGFuZ2VDb2xvcjogKCktPlxyXG4gICAgICBcclxuXHJcbiQuZm4uZXh0ZW5kXHJcbiAgQ2hlZWtpbmdNYWNoaW5lOiAob3B0aW9ucykgLT5cclxuXHJcbiAgICBAc2V0dGluZ3MgPSAkLmV4dGVuZCBzZXR0aW5ncywgb3B0aW9uc1xyXG4gICAgcmV0dXJuIEBlYWNoIChpZHgsIGVsZW0pIC0+XHJcbiAgICAgIGNtID0gbmV3IENoZWVraW5nTWFjaGluZSBcclxuICAgICAgICBpZDogc2V0dGluZ3MuaWRcclxuICAgICAgICB3cmFwcGVyOiBlbGVtXHJcbiAgICAgICAgc2V0dGluZ3M6IHNldHRpbmdzIl19 ;
Ms-Dos/Windows
Unix
Write backup
jsp File Browser version 1.2 by
www.vonloesch.de