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, ref, val; 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, i, len, poX, poY, prop, reProportionPosition, 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, ref1, top; 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,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbImNoZWVraW5nLW1hY2hpbmUuY29mZmVlIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBO0FBQUEsTUFBQSw4QkFBQTs7QUFBQSxFQUFBLENBQUEsR0FBSSxNQUFKLENBQUE7O0FBQUEsRUFFQSxJQUFDLENBQUEsUUFBRCxHQUNFO0FBQUEsSUFBQSxFQUFBLEVBQUksSUFBSjtBQUFBLElBQ0EsTUFBQSxFQUNFO0FBQUEsTUFBQSxLQUFBLEVBQ0U7QUFBQSxRQUFBLEtBQUEsRUFBTyxHQUFQO0FBQUEsUUFDQSxNQUFBLEVBQVEsR0FEUjtPQURGO0FBQUEsTUFHQSxNQUFBLEVBQVEsRUFIUjtBQUFBLE1BSUEsS0FBQSxFQUNFO0FBQUEsUUFBQSxVQUFBLEVBQVksSUFBWjtBQUFBLFFBQ0EsU0FBQSxFQUFXLFNBRFg7QUFBQSxRQUVBLFFBQUEsRUFBVSxNQUZWO0FBQUEsUUFHQSxRQUFBLEVBQ0k7QUFBQSxVQUFBLENBQUEsRUFBRyxDQUFIO0FBQUEsVUFDQSxDQUFBLEVBQUcsQ0FESDtTQUpKO0FBQUEsUUFNQSxTQUFBLEVBQVcsT0FOWDtBQUFBLFFBT0EsSUFBQSxFQUFNLElBUE47T0FMRjtBQUFBLE1BYUEsT0FBQSxFQUNFO0FBQUEsUUFBQSxVQUFBLEVBQVksSUFBWjtBQUFBLFFBQ0EsU0FBQSxFQUFXLFNBRFg7QUFBQSxRQUVBLFFBQUEsRUFBVSxNQUZWO0FBQUEsUUFHQSxRQUFBLEVBQ0k7QUFBQSxVQUFBLENBQUEsRUFBRyxDQUFIO0FBQUEsVUFDQSxDQUFBLEVBQUcsQ0FESDtTQUpKO0FBQUEsUUFNQSxLQUFBLEVBQU8sT0FOUDtBQUFBLFFBT0EsSUFBQSxFQUFNLElBUE47T0FkRjtLQUZGO0FBQUEsSUF3QkEsT0FBQSxFQUNFO0FBQUEsTUFBQSxPQUFBLEVBQVMsRUFBVDtBQUFBLE1BQ0EsS0FBQSxFQUNFO0FBQUEsUUFBQSxVQUFBLEVBQVksSUFBWjtBQUFBLFFBQ0EsU0FBQSxFQUFXLFNBRFg7QUFBQSxRQUVBLFFBQUEsRUFBVSxNQUZWO0FB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RUEsUUFBQSxFQUFVLFFBRlY7U0FETyxFQURFO01BQUEsQ0FBTixDQUFQLENBSGU7SUFBQSxDQUFqQjtHQURGLENBeE9BLENBQUE7QUFBQSIsImZpbGUiOiJjaGVla2luZy1tYWNoaW5lLmpzIiwic291cmNlUm9vdCI6Ii9zb3VyY2UvIiwic291cmNlc0NvbnRlbnQiOlsiJCA9IGpRdWVyeVxuXG5Ac2V0dGluZ3MgPSBcbiAgaWQ6IFwiY21cIlxuICBjcmVkaXQ6IFxuICAgIGltYWdlOlxuICAgICAgd2lkdGg6IDMwMFxuICAgICAgaGVpZ2h0OiAyMDBcbiAgICBmYWRlSW46IDIwXG4gICAgdGl0bGU6XG4gICAgICBmb250RmFtaWx5OiBcIum7keS9k1wiXG4gICAgICBmb250Q29sb3I6IFwiIzAwMDAwMFwiXG4gICAgICBmb250U2l6ZTogXCIxMnB4XCJcbiAgICAgIHBvc2l0aW9uOlxuICAgICAgICAgIHg6IDBcbiAgICAgICAgICB5OiAwXG4gICAgICB0ZXh0V2lkdGg6IFwiMjAwcHhcIlxuICAgICAgYm9sZDogdHJ1ZVxuICAgIHNwZWFrZXI6XG4gICAgICBmb250RmFtaWx5OiBcIum7keS9k1wiXG4gICAgICBmb250Q29sb3I6IFwiIzAwMDAwMFwiXG4gICAgICBmb250U2l6ZTogXCIxMnB4XCJcbiAgICAgIHBvc2l0aW9uOlxuICAgICAgICAgIHg6IDBcbiAgICAgICAgICB5OiAwXG4gICAgICB3aWR0aDogXCIyMDBweFwiXG4gICAgICBib2xkOiB0cnVlXG4gIHRyYWlsZXI6IFxuICAgIGZhZGVPdXQ6IDIwXG4gICAgdGl0bGU6XG4gICAgICBmb250RmFtaWx5OiBcIum7keS9k1wiXG4gICAgICBmb250Q29sb3I6IFwiIzAwMDAwMFwiXG4gICAgICBmb250U2l6ZTogXCIxMnB4XCJcbiAgICAgIHBvc2l0aW9uOlxuICAgICAgICB4OiAwXG4gICAgICAgIHk6IDBcbiAgICAgIHdpZHRoOiBcIjIwMHB4XCJcbiAgICAgIGJvbGQ6IHRydWVcbiAgICBzcGVha2VyOlxuICAgICAgZm9udEZhbWlseTogXCLpu5HkvZNcIlxuICAgICAgZm9udENvbG9yOiBcIiMwMDAwMDBcIlxuICAgICAgZm9udFNpemU6IFwiMTJweFwiXG4gICAgICBwb3NpdGlvbjpcbiAgICAgICAgeDogMFxuICAgICAgICB5OiAwXG4gICAgICB3aWR0aDogXCIyMDBweFwiXG4gICAgICBib2xkOiB0cnVlXG5cblxuY2xhc3MgRGF0YUJpbmRlciBcbiAgY29uc3RydWN0b3I6IChpZCkgLT5cbiAgICBwdWJTdWIgPSAkKHt9KVxuICAgIGRhdGFfYXR0ciA9IFwiYmluZC1cIitpZFxuICAgIG1lc3NhZ2UgPSBpZCtcIjpjaGFuZ2VcIlxuICAgIFxuICAgICQoZG9jdW1lbnQpLm9uIFwiY2hhbmdlXCIsIFwiW2RhdGEtXCIrZGF0YV9hdHRyK1wiXVwiLCAoZSkgLT5cbiAgICAgICR3aGljaCA9ICQodGhpcylcbiAgICAgIHB1YlN1Yi50cmlnZ2VyIG1lc3NhZ2UsIFsgJHdoaWNoLmRhdGEoZGF0YV9hdHRyKSwgJHdoaWNoLnZhbCgpXVxuICAgIFxuICAgIHB1YlN1Yi5vbiBtZXNzYWdlLCAoZSwgcHJvcF9uYW1lLCBuZXdWYWwpIC0+XG4gICAgICAkKFwiW2RhdGEtXCIrZGF0YV9hdHRyK1wiPVwiK3Byb3BfbmFtZStcIl1cIikuZWFjaCAtPlxuICAgICAgICAkYm91bmQgPSAkKHRoaXMpXG4gICAgICAgIGlmICRib3VuZC5pcyhcImlucHV0LCB0ZXh0YXJlYSwgc2VsZWN0XCIpXG4gICAgICAgICAgJGJvdW5kLnZhbCBuZXdWYWxcbiAgICAgICAgZWxzZVxuICAgICAgICAgICRib3VuZC5odG1sIG5ld1ZhbFxuICAgIEBwdWJTdWIgPSBwdWJTdWJcblxuXG5cblxuXG5cbmNsYXNzIENoZWVraW5nTWFjaGluZVxuICBjb25zdHJ1Y3RvcjogKGFyZ3MpIC0+XG5cbiAgICBbQHdyYXBwZXIsIEBzZXR0aW5ncywgQGlkXSA9IFthcmdzLndyYXBwZXIsIGFyZ3Muc2V0dGluZ3MsIGFyZ3MuaWRdXG5cblxuICBcbiAgICBiaW5kZXIgPSAobmV3IERhdGFCaW5kZXIgQGlkKS5wdWJTdWJcblxuICAgIGlkID0gQGlkXG5cbiAgICBAY20gPVxuICAgICAgYXR0cmlidXRlczoge31cbiAgICAgIHNldDogKGF0dHJfbmFtZSwgdmFsKSAtPlxuICAgICAgICBAYXR0cmlidXRlc1sgYXR0cl9uYW1lIF0gPSB2YWxcbiAgICAgICAgYmluZGVyLnRyaWdnZXIgaWQgKyBcIjpjaGFuZ2VcIiwgW2F0dHJfbmFtZSwgdmFsLCBAXVxuICAgICAgICBAXG4gICAgICBnZXQ6IChhdHRyX25hbWUpIC0+XG4gICAgICAgIEBhdHRyaWJ1dGVzW2F0dHJfbmFtZV1cbiAgICAgIF9iaW5kZXI6YmluZGVyXG5cbiAgICBjbSA9IEBjbVxuXG4gICAgYmluZGVyLm9uIGlkICsgXCI6Y2hhbmdlXCIsIChlLCBhdHRyX25hbWUsIG5ld192YWx1ZSwgaW5pdGlhdG9yKS0+XG4gICAgICBjbS5zZXQoIGF0dHJfbmFtZSwgbmV3X3ZhbHVlICkgaWYgaW5pdGlhdG9yIGlzbnQgY21cblxuXG4gICAgQGJpbmRlciA9IGJpbmRlciBcblxuXG4gICAgQGJpbmREYXRhV2l0aFVJKClcbiAgICByZXR1cm4gY21cblxuXG4gIGJpbmREYXRhV2l0aFVJOiAoKSAtPlxuICAgIHVpZCA9IEBpZFxuICAgIGNtID0gQGNtXG4gICAgdXBkYXRlVUkgPSBAdXBkYXRlVUlcblxuICAgICQoXCJbZGF0YS1iaW5kLVwiK0BpZCtcIl1cIikuZWFjaCAoaWR4LCBlbGVtKS0+XG4gICAgICAkZWxlbSA9ICQoZWxlbSlcbiAgICAgIGlmICRlbGVtLmlzIFwiaW5wdXQsIHRleHRhcmVhLCBzZWxlY3RcIlxuXG4gICAgICAgIGNtLnNldCAkZWxlbS5hdHRyKFwiZGF0YS1iaW5kLVwiK3VpZCksICRlbGVtLnZhbCgpXG5cbiAgICAgICAgJGVsZW0ub24gXCJrZXlwcmVzc1wiLCB7cHJvcDokZWxlbS5hdHRyKFwiZGF0YS1iaW5kLVwiK3VpZCl9LChlKS0+XG4gICAgICAgICAgIyBjb25zb2xlLmxvZyBcInVwZGF0ZVVJXCIgLGUua2V5Q29kZVxuICAgICAgICAgIGlmIGUua2V5Q29kZSA9PSAxMyAgICBcbiAgICAgICAgICAgIHVwZGF0ZVVJKCRlbGVtLGUuZGF0YSlcbiAgICAgIGVsc2VcbiAgICAgICAgY20uc2V0ICRlbGVtLmF0dHIoXCJkYXRhLWJpbmQtXCIrdWlkKSwgJGVsZW0uaHRtbCgpXG5cblxuICAgIEB3b3Jrc3BhY2UgPSAkKEB3cmFwcGVyKS5maW5kKFwiI2NtLXdvcmtzcGFjZVwiKVxuICAgIEB0b29scyA9ICQoQHdyYXBwZXIpLmZpbmQoXCIjY20tdG9vbHNcIilcbiAgICAkd29ya3NwYWNlID0gJChAd29ya3NwYWNlKVxuXG5cblxuICAgIEBpbXBsRHJhZ2dhYmxlICBcImNyZWRpdFwiLCBcInNwZWFrZXJcIiBcbiAgICBAaW1wbERyYWdnYWJsZSAgXCJjcmVkaXRcIiwgXCJ0aXRsZVwiXG5cbiAgICBAaW5pdENvbG9yUGlja2VyKClcblxuXG4gIHVwZGF0ZVVJOiAoJGVsZW0sIGRhdGEpIC0+XG4gICAgY20gPSBAY21cbiAgICBbcHJvcCwgdmFsXSA9IFtkYXRhLnByb3AsICRlbGVtLnZhbCgpXVxuICAgIFxuXG4gICAgcHJvcCA9IHByb3Auc3Vic3RyIHByb3AubGFzdEluZGV4T2YoJy0nKSsxLCBwcm9wLmxlbmd0aFxuICAgICR0YXJnZXQgPSAkKFwiLlwiKyRlbGVtLmF0dHIoXCJkYXRhLWJpbmQtdGFyZ2V0XCIpKVxuICAgICMgY29uc29sZS5sb2cgXCJ1cGRhdGVVSVwiICwgZGF0YSAsICRlbGVtLmF0dHIoXCJkYXRhLWJpbmQtdGFyZ2V0XCIpLCAkdGFyZ2V0XG4gICAgc3dpdGNoIHByb3AgXG4gICAgICB3aGVuIFwiZm9udFNpemVcIiwgXCJmb250LXNpemVcIixcIndpZHRoXCJcbiAgICAgICAgJHRhcmdldC5jc3MgcHJvcCwgdmFsK1wicHhcIlxuXG5cblxuICBpbXBsRHJhZ2dhYmxlOiAoIG1vZHVsZU5hbWUsIGl0ZW1OYW1lKSAtPlxuICAgIGNtID0gQGNtXG5cbiAgICAkbW9kdWxlID0gJCgkKEB3b3Jrc3BhY2UpLmZpbmQoXCIuY20tXCIrbW9kdWxlTmFtZSkgKVxuICAgICR0b29scyA9ICQoQHRvb2xzKVxuXG4gICAgJGl0ZW0gPSAkbW9kdWxlLmZpbmQoXCIuY20tXCIrbW9kdWxlTmFtZStcIi1cIitpdGVtTmFtZSlcblxuICAgIHBvWCA9IGNtLmdldCBtb2R1bGVOYW1lK1wiLVwiK2l0ZW1OYW1lK1wiLXBvc2l0aW9uWFwiXG4gICAgcG9ZID0gY20uZ2V0IG1vZHVsZU5hbWUrXCItXCIraXRlbU5hbWUrXCItcG9zaXRpb25ZXCJcblxuICAgIFxuICAgIGlmIHBvWCBpc250IG51bGwgb3IgcG9ZIGlzbnQgbnVsbFxuICAgICAgJGl0ZW0ub2Zmc2V0IFxuICAgICAgICBsZWZ0OiBwb1hcbiAgICAgICAgdG9wOiBwb1lcblxuICAgIGZvciBwcm9wIGluIFsnZm9udC1zaXplJywgJ2ZvbnQtd2VpZ2h0JywgJ2ZvbnQtZmFtaWx5JywgJ2NvbG9yJywgJ3dpZHRoJ11cbiAgICAgICMgY29uc29sZS5sb2cgXCJwcm9wXCIsY20uZ2V0KG1vZHVsZU5hbWUrXCItXCIraXRlbU5hbWUrXCItXCIrcHJvcClcbiAgICAgIGlmIGNtLmdldChtb2R1bGVOYW1lK1wiLVwiK2l0ZW1OYW1lK1wiLVwiK3Byb3ApIGlzbnQgbnVsbFxuICAgICAgICBzd2l0Y2ggcHJvcCBcbiAgICAgICAgICB3aGVuIFwiZm9udC1zaXplXCJcbiAgICAgICAgICAgICRpdGVtLmNzcyBwcm9wLCBjbS5nZXQobW9kdWxlTmFtZStcIi1cIitpdGVtTmFtZStcIi1cIitwcm9wKStcInB4XCJcbiAgICAgICAgICBlbHNlXG4gICAgICAgICAgICAkaXRlbS5jc3MgcHJvcCwgY20uZ2V0KG1vZHVsZU5hbWUrXCItXCIraXRlbU5hbWUrXCItXCIrcHJvcCkgXG5cbiAgICByZVByb3BvcnRpb25Qb3NpdGlvbiA9IEByZVByb3BvcnRpb25Qb3NpdGlvblxuICAgICRpdGVtLmRyYWdnYWJsZVxuICAgICAgY3Vyc29yOiBcImNvbC1yZXNpemVcIlxuICAgICAgY29udGFpbm1lbnQ6ICdwYXJlbnQnXG4gICAgICByZWZyZXNoUG9zaXRpb25zOiB0cnVlXG4gICAgICBkcmFnIDogKGV2ZW50LHVpKSAtPlxuICAgICMgJHRvb2xzLmZpbmQoXCIjY20tXCIrbW9kdWxlTmFtZStcIi1cIitpdGVtTmFtZStcIi14XCIpLnZhbCh1aS5wb3NpdGlvbi5sZWZ0KVxuICAgICMgJHRvb2xzLmZpbmQoXCIjY20tXCIrbW9kdWxlTmFtZStcIi1cIitpdGVtTmFtZStcIi15XCIpLnZhbCh1aS5wb3NpdGlvbi50b3ApXG5cbiAgICAgICAgW2xlZnQsIHRvcF0gPSByZVByb3BvcnRpb25Qb3NpdGlvbiggdWkucG9zaXRpb24ubGVmdCwgIHVpLnBvc2l0aW9uLnRvcCApXG4gICAgICAgIGNtLnNldCBtb2R1bGVOYW1lK1wiLVwiK2l0ZW1OYW1lK1wiLXBvc2l0aW9uWFwiLCBsZWZ0XG4gICAgICAgIGNtLnNldCBtb2R1bGVOYW1lK1wiLVwiK2l0ZW1OYW1lK1wiLXBvc2l0aW9uWVwiLCB0b3BcblxuICByZVByb3BvcnRpb25Qb3NpdGlvbjogKGxlZnQsIHRvcCktPlxuICAgIFtAc2NhbGVYICogbGVmdCwgQHNjYWxlWSAqIHRvcF1cblxuICBpbml0Q29sb3JQaWNrZXI6ICgpLT5cbiAgICBAY29sb3JwaWNrZXJzID0gJChAd3JhcHBlcikuZmluZChcIi5jb2xvci1waWNrZXJcIilcblxuICAgIFxuICAgICQoQGNvbG9ycGlja2VycykuZWFjaCAoaWR4LCBlbGVtKSAtPlxuXG4gICAgICAkaW5wdXQgPSAkKCQoZWxlbSkucGFyZW50KCkuZmluZChcImlucHV0XCIpKVxuICAgICAgJChlbGVtICkuY2hpbGRyZW4oXCJkaXZcIikuY3NzKCdiYWNrZ3JvdW5kQ29sb3InLCAnIycrJGlucHV0LnZhbCgpKVxuICAgICAgJChlbGVtKS5Db2xvclBpY2tlclxuICAgICAgICBvblNob3c6IChjb2xwa3IpIC0+XG4gICAgICAgICAgJChjb2xwa3IpLmZhZGVJbig1MDApXG5cbiAgICAgICAgb25TdWJtaXQ6IChoc2IsIGhleCwgcmdiLCBlbCktPlxuICAgICAgICAgICQoZWwpLnZhbChoZXgpXG4gICAgICAgICAgJChlbCkuQ29sb3JQaWNrZXJIaWRlKClcbiAgICAgICAgICAkKFwiLlwiKyRpbnB1dC5hdHRyKFwiZGF0YS1iaW5kLXRhcmdldFwiKSkuY3NzKFwiY29sb3JcIiwgXCIjXCIraGV4KVxuICAgICAgIFxuICAgICAgICBvbkJlZm9yZVNob3c6ICgpLT5cbiAgICAgICAgICAkKHRoaXMpLkNvbG9yUGlja2VyU2V0Q29sb3IoJGlucHV0LnZhbCgpKVxuXG5cbiAgICAgICAgb25IaWRlOiAgKGNvbHBrcikgLT5cbiAgICAgICAgICAkKGNvbHBrcikuZmFkZU91dCg1MDApXG4gICAgICAgICAgZmFsc2VcblxuICAgICAgICBvbkNoYW5nZTogKGhzYiwgaGV4LCByZ2IpIC0+XG4gICAgICAgICAgJChlbGVtICkuY2hpbGRyZW4oXCJkaXZcIikuY3NzKCdiYWNrZ3JvdW5kQ29sb3InLCAnIycraGV4KVxuICAgICAgICAgICMgY2hhbmdlQ29sb3IuYXBwbHkoQCwgW2hleF0pXG4gICAgICAgICAgJGlucHV0LnZhbChoZXgpXG4gICAgICAgICAgJChcIi5cIiskaW5wdXQuYXR0cihcImRhdGEtYmluZC10YXJnZXRcIikpLmNzcyhcImNvbG9yXCIsIFwiI1wiK2hleClcbiAgICAgICAgICAgICAgIyAkKCcjY29sb3JTZWxlY3RvciBkaXYnKS5jc3MoJ2JhY2tncm91bmRDb2xvcicsICcjJyArIGhleClcbiAgICAuYmluZCAna2V5dXAnLCAoKS0+XG4gICAgICAkKHRoaXMpLkNvbG9yUGlja2VyU2V0Q29sb3IoJGlucHV0LnZhbCgpKVxuXG5cbiAgb25DaGFuZ2VDb2xvcjogKCktPlxuICAgICAgXG5cbiQuZm4uZXh0ZW5kXG4gIENoZWVraW5nTWFjaGluZTogKG9wdGlvbnMpIC0+XG5cbiAgICBAc2V0dGluZ3MgPSAkLmV4dGVuZCBzZXR0aW5ncywgb3B0aW9uc1xuICAgIHJldHVybiBAZWFjaCAoaWR4LCBlbGVtKSAtPlxuICAgICAgY20gPSBuZXcgQ2hlZWtpbmdNYWNoaW5lIFxuICAgICAgICBpZDogc2V0dGluZ3MuaWRcbiAgICAgICAgd3JhcHBlcjogZWxlbVxuICAgICAgICBzZXR0aW5nczogc2V0dGluZ3MiXX0= ;
Ms-Dos/Windows
Unix
Write backup
jsp File Browser version 1.2 by
www.vonloesch.de