UNPKG

mindstream-gravity-form

Version:

Mindstream Fork of Gravity Forms on React apps via the Wordpress API

2 lines 22.9 kB
"use strict";Object.defineProperty(exports,"__esModule",{value:!0}),exports.validateField=exports.isRequired=exports.isEmail=exports.isUrl=exports.checkboxValidation=exports.selectValidation=exports.isEmpty=void 0;function _typeof(a){"@babel/helpers - typeof";return _typeof="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(a){return typeof a}:function(a){return a&&"function"==typeof Symbol&&a.constructor===Symbol&&a!==Symbol.prototype?"symbol":typeof a},_typeof(a)}var getMessage=function(a,b){return!!b&&(a&&"object"===_typeof(a)&&a[b]?a[b]:a)},isEmail=function(a,b){if(!/^(([^<>()\[\]\\.,;:\s@"]+(\.[^<>()\[\]\\.,;:\s@"]+)*)|(".+"))@((\[[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}])|(([a-zA-Z\-0-9]+\.)+[a-zA-Z]{2,}))$/.test(a)){var c=getMessage(b,"email");return c||"Enter a valid email"}return!1};exports.isEmail=isEmail;var isUrl=function(a,b){if(!/^(https?:\/\/)?((([a-z\d]([a-z\d-]*[a-z\d])*)\.)+[a-z]{2,}|((\d{1,3}\.){3}\d{1,3}))(\:\d+)?(\/[-a-z\d%_.~+]*)*(\?[;&a-z\d%_.~+=-]*)?(\#[-a-z\d_]*)?$/i.test(a)){var c=getMessage(b,"url");return c||"Enter a valid url"}return!1};exports.isUrl=isUrl;var isEmpty=function(a){return!a};exports.isEmpty=isEmpty;var isRequired=function(a,b,c){if(a&&b){var d=getMessage(c,"required");return d||"This field is required"}return!1};exports.isRequired=isRequired;var selectValidation=function(a,b,c){return!(b===c&&a)};exports.selectValidation=selectValidation;var checkboxValidation=function(a,b){return!!(1>a.length)&&(b||"This field is required")};exports.checkboxValidation=checkboxValidation;var emailValidation=function(a,b){var c=b||!1,d=c.inputs,e=c.isRequired,f=c.errorMessage,g=f||!1,h=g.required,j=g.mismatch,k=a&&a.filter(function(a){return a&&""===a.val}).length;if((a&&2>a.length||0!==k)&&e)return h||"This field is required";if(a&&0<a.length)for(var l,m=0;a.length>m;m++)if(l=isEmail(a[m].val),l)return console.log(l),l;return!!(a&&2===a.length&&d&&2===d.length&&a[1]&&a[0]&&""!==a[1].val&&a[1].val!==a[0].val)&&(j||"Mismatch")},passwordValidation=function(a,b){var c=b||!1,d=c.inputs,e=c.isRequired,f=c.errorMessage,g=f||!1,h=g.required,i=g.mismatch,j=d.filter(function(a){return!a.isHidden}),k=a&&a.filter(function(a){return a&&""===a.val}).length;return(a&&0===a.length||k===j.length)&&e?h||"This field is required":!!(a&&2===a.length&&j&&2===j.length&&a[1]&&a[0]&&""!==a[1].val&&a[1].val!==a[0].val)&&(i||"Mismatch")},validateDateTypeDrowdown=function(a,b,c){if(!b||!a)return!1;var d=Object.keys(a),e=!0;if(d&&3===d.length)for(var f,g=0;g<d.length;g++)if(f=a[g].val,""===f){e=!1;break}return!e&&(c||"This field is required")},isDate=function(a,b){var c=[];if("datedropdown"===b.dateType)return validateDateTypeDrowdown(a,b.isRequired,b.errorMessage);for(var h=0;h<a.length;h++)if(a[h]){var d=a[h],e=d.val,f=d.label;if(e)if("MM"===f){(e.length>2||e<1||12<e)&&(c[h]={index:h,message:"Enter a valid month"})}else if("DD"===f){(e.length>2||e<1||31<e)&&(c[h]={index:h,message:"Enter a valid date"})}else if("YYYY"===f){var g=new Date().getFullYear()+1;(e.length>4||e<1920||e>g)&&(c[h]={index:h,message:"Enter a valid year"})}}return c},validateField=function(a,b){var c=b.type,d=b.isRequired;if(("checkbox"===c||"radio"===c)&&d)return checkboxValidation(a,b.errorMessage);if("password"===c)return passwordValidation(a,b);if("email"===c&&b.emailConfirmEnabled)return emailValidation(a,b);var e=isEmpty(a),f="",g=!!(b&&b.errorMessage)&&b.errorMessage;if(f=!!d&&isRequired(d,e,g),!f&&!e)if("email"===c)f=isEmail(a,g);else if("website"===c)f=isUrl(a,g);else if("date"===c){var h=!0;h=b.dateType&&"datepicker"===b.dateType?!!d&&isRequired(d,e,g):isDate(a,b),f=!!(0<h.length)&&h}return f};exports.validateField=validateField; //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9IZWxwZXJzL3ZhbGlkYXRpb24uanMiXSwibmFtZXMiOlsiZ2V0TWVzc2FnZSIsIm1lc3NhZ2UiLCJ0eXBlIiwiaXNFbWFpbCIsImVtYWlsIiwidGVzdCIsImN1c3RvbU1lc3NhZ2UiLCJpc1VybCIsInN0ciIsImlzRW1wdHkiLCJ2YWx1ZSIsImlzUmVxdWlyZWQiLCJyZXF1aXJlZCIsImVtcHR5Iiwic2VsZWN0VmFsaWRhdGlvbiIsInBsYWNlaG9sZGVyIiwiY2hlY2tib3hWYWxpZGF0aW9uIiwidmFsdWVzIiwibGVuZ3RoIiwiZW1haWxWYWxpZGF0aW9uIiwiZmllbGQiLCJpbnB1dHMiLCJlcnJvck1lc3NhZ2UiLCJyZXF1aXJlZE1zZyIsIm1pc21hdGNoIiwiaXNJbnB1dHNFbXB0eSIsImZpbHRlciIsIml0ZW0iLCJ2YWwiLCJpc0luVmFsaWRNYWlsIiwiaSIsImNvbnNvbGUiLCJsb2ciLCJwYXNzd29yZFZhbGlkYXRpb24iLCJmaWx0ZXJlZElucHV0cyIsImlzSGlkZGVuIiwidmFsaWRhdGVEYXRlVHlwZURyb3dkb3duIiwia2V5cyIsIk9iamVjdCIsImlzVmFsaWQiLCJpc0RhdGUiLCJ2YWxpZGF0aW9uIiwiZGF0ZVR5cGUiLCJsYWJlbCIsImluZGV4IiwibWF4IiwiRGF0ZSIsImdldEZ1bGxZZWFyIiwidmFsaWRhdGVGaWVsZCIsImVtYWlsQ29uZmlybUVuYWJsZWQiLCJ2YWxpZGF0aW9uTWVzc2FnZSJdLCJtYXBwaW5ncyI6IjJlQUFNQSxDQUFBQSxVQUFVLENBQUcsU0FBQ0MsQ0FBRCxDQUFVQyxDQUFWLENBQW1CLFNBQy9CQSxDQUQrQixHQUVoQ0QsQ0FBTyxFQUF1QixRQUFuQixXQUFPQSxDQUFQLENBQVgsRUFBMENBLENBQU8sQ0FBQ0MsQ0FBRCxDQUZqQixDQUczQkQsQ0FBTyxDQUFDQyxDQUFELENBSG9CLENBSzdCRCxDQUw2QixDQU1yQyxDLENBRUtFLE9BQU8sQ0FBRyxTQUFDQyxDQUFELENBQVFILENBQVIsQ0FBb0Is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TyxHQUFYLENBRUVBLENBSHdCLENBRXRCbkIsQ0FBSyxDQUFDc0IsUUFBTixFQUFxQyxZQUFuQixHQUFBdEIsQ0FBSyxDQUFDc0IsUUFGRixHQUdkOUIsQ0FIYyxFQUdIRCxVQUFVLENBQUNDLENBQUQsQ0FBV0MsQ0FBWCxDQUFrQlosQ0FBbEIsQ0FIUCxDQUtkdUMsTUFBTSxDQUFDOUIsQ0FBRCxDQUFRVSxDQUFSLENBTFEsQ0FPMUI4QixDQUFpQixJQUFvQixDQUFqQixDQUFBWCxDQUFPLENBQUNyQixNQUFYLEdBQXdCcUIsQ0FDMUMsQ0FFSCxNQUFPVyxDQUFBQSxDQUNSLEMiLCJzb3VyY2VzQ29udGVudCI6WyJjb25zdCBnZXRNZXNzYWdlID0gKG1lc3NhZ2UsIHR5cGUpID0+IHtcclxuICBpZiAoIXR5cGUpIHJldHVybiBmYWxzZTtcclxuICBpZiAobWVzc2FnZSAmJiB0eXBlb2YgbWVzc2FnZSA9PT0gXCJvYmplY3RcIiAmJiBtZXNzYWdlW3R5cGVdKSB7XHJcbiAgICByZXR1cm4gbWVzc2FnZVt0eXBlXTtcclxuICB9XHJcbiAgcmV0dXJuIG1lc3NhZ2U7XHJcbn07XHJcblxyXG5jb25zdCBpc0VtYWlsID0gKGVtYWlsLCBtZXNzYWdlKSA9PiB7XHJcbiAgY29uc3QgcmUgPSAvXigoW148PigpXFxbXFxdXFxcXC4sOzpcXHNAXCJdKyhcXC5bXjw+KClcXFtcXF1cXFxcLiw7Olxcc0BcIl0rKSopfChcIi4rXCIpKUAoKFxcW1swLTldezEsM31cXC5bMC05XXsxLDN9XFwuWzAtOV17MSwzfVxcLlswLTldezEsM31dKXwoKFthLXpBLVpcXC0wLTldK1xcLikrW2EtekEtWl17Mix9KSkkLztcclxuXHJcbiAgaWYgKCFyZS50ZXN0KGVtYWlsKSkge1xyXG4gICAgY29uc3QgY3VzdG9tTWVzc2FnZSA9IGdldE1lc3NhZ2UobWVzc2FnZSwgXCJlbWFpbFwiKTtcclxuICAgIHJldHVybiBjdXN0b21NZXNzYWdlIHx8IFwiRW50ZXIgYSB2YWxpZCBlbWFpbFwiO1xyXG4gIH1cclxuICByZXR1cm4gZmFsc2U7XHJcbn07XHJcblxyXG5jb25zdCBpc1VybCA9IChzdHIsIG1lc3NhZ2UpID0+IHtcclxuICBjb25zdCBwYXR0ZXJuID0gbmV3IFJlZ0V4cChcclxuICAgIFwiXihodHRwcz86XFxcXC9cXFxcLyk/XCIgKyAvLyBwcm90b2NvbFxyXG4gICAgICBcIigoKFthLXpcXFxcZF0oW2EtelxcXFxkLV0qW2EtelxcXFxkXSkqKVxcXFwuKStbYS16XXsyLH18XCIgKyAvLyBkb21haW4gbmFtZVxyXG4gICAgICBcIigoXFxcXGR7MSwzfVxcXFwuKXszfVxcXFxkezEsM30pKVwiICsgLy8gT1IgaXAgKHY0KSBhZGRyZXNzXHJcbiAgICAgIFwiKFxcXFw6XFxcXGQrKT8oXFxcXC9bLWEtelxcXFxkJV8ufitdKikqXCIgKyAvLyBwb3J0IGFuZCBwYXRoXHJcbiAgICAgIFwiKFxcXFw/WzsmYS16XFxcXGQlXy5+Kz0tXSopP1wiICsgLy8gcXVlcnkgc3RyaW5nXHJcbiAgICAgIFwiKFxcXFwjWy1hLXpcXFxcZF9dKik/JFwiLFxyXG4gICAgXCJpXCJcclxuICApOyAvLyBmcmFnbWVudCBsb2NhdG9yXHJcbiAgaWYgKCFwYXR0ZXJuLnRlc3Qoc3RyKSkge1xyXG4gICAgY29uc3QgY3VzdG9tTWVzc2FnZSA9IGdldE1lc3NhZ2UobWVzc2FnZSwgXCJ1cmxcIik7XHJcbiAgICByZXR1cm4gY3VzdG9tTWVzc2FnZSB8fCBcIkVudGVyIGEgdmFsaWQgdXJsXCI7XHJcbiAgfVxyXG4gIHJldHVybiBmYWxzZTtcclxufTtcclxuXHJcbmNvbnN0IGlzRW1wdHkgPSAodmFsdWUpID0+IHtcclxuICBpZiAoIXZhbHVlKSB7XHJcbiAgICByZXR1cm4gdHJ1ZTtcclxuICB9XHJcbiAgcmV0dXJuIGZhbHNlO1xyXG59O1xyXG5cclxuY29uc3QgaXNSZXF1aXJlZCA9IChyZXF1aXJlZCwgZW1wdHksIG1lc3NhZ2UpID0+IHtcclxuICBpZiAocmVxdWlyZWQgJiYgZW1wdHkpIHtcclxuICAgIGNvbnN0IGN1c3RvbU1lc3NhZ2UgPSBnZXRNZXNzYWdlKG1lc3NhZ2UsIFwicmVxdWlyZWRcIik7XHJcbiAgICByZXR1cm4gY3VzdG9tTWVzc2FnZSB8fCBcIlRoaXMgZmllbGQgaXMgcmVxdWlyZWRcIjtcclxuICB9XHJcbiAgcmV0dXJuIGZhbHNlO1xyXG59O1xyXG5cclxuY29uc3Qgc2VsZWN0VmFsaWRhdGlvbiA9IChyZXF1aXJlZCwgdmFsdWUsIHBsYWNlaG9sZGVyKSA9PlxyXG4gICEodmFsdWUgPT09IHBsYWNlaG9sZGVyICYmIHJlcXVpcmVkKTtcclxuXHJcbmNvbnN0IGNoZWNrYm94VmFsaWRhdGlvbiA9ICh2YWx1ZXMsIG1lc3NhZ2UpID0+IHtcclxuICBpZiAodmFsdWVzLmxlbmd0aCA8IDEpIHtcclxuICAgIHJldHVybiBtZXNzYWdlIHx8IFwiVGhpcyBmaWVsZCBpcyByZXF1aXJlZFwiO1xyXG4gIH1cclxuICByZXR1cm4gZmFsc2U7XHJcbn07XHJcblxyXG5jb25zdCBlbWFpbFZhbGlkYXRpb24gPSAodmFsdWVzLCBmaWVsZCkgPT4ge1xyXG4gIGNvbnN0IHsgaW5wdXRzLCBpc1JlcXVpcmVkOiByZXF1aXJlZCwgZXJyb3JNZXNzYWdlIH0gPSBmaWVsZCB8fCBmYWxzZTtcclxuICBjb25zdCB7IHJlcXVpcmVkOiByZXF1aXJlZE1zZywgbWlzbWF0Y2ggfSA9IGVycm9yTWVzc2FnZSB8fCBmYWxzZTtcclxuXHJcbiAgLy8gY2hlY2sgaWYgZmllbGRzIGlzIHJlcXVpcmVkIGFuZCBpc24ndCBlbXB0eVxyXG4gIGNvbnN0IGlzSW5wdXRzRW1wdHkgPVxyXG4gICAgdmFsdWVzICYmIHZhbHVlcy5maWx0ZXIoKGl0ZW0pID0+IGl0ZW0gJiYgaXRlbS52YWwgPT09IFwiXCIpLmxlbmd0aDtcclxuXHJcbiAgaWYgKCgodmFsdWVzICYmIHZhbHVlcy5sZW5ndGggPCAyKSB8fCBpc0lucHV0c0VtcHR5ICE9PSAwKSAmJiByZXF1aXJlZCkge1xyXG4gICAgcmV0dXJuIHJlcXVpcmVkTXNnIHx8IFwiVGhpcyBmaWVsZCBpcyByZXF1aXJlZFwiO1xyXG4gIH1cclxuXHJcbiAgaWYgKHZhbHVlcyAmJiB2YWx1ZXMubGVuZ3RoID4gMCkge1xyXG4gICAgZm9yIChsZXQgaSA9IDA7IHZhbHVlcy5sZW5ndGggPiBpOyBpKyspIHtcclxuICAgICAgY29uc3QgaXNJblZhbGlkTWFpbCA9IGlzRW1haWwodmFsdWVzW2ldLnZhbCk7XHJcbiAgICAgIGlmIChpc0luVmFsaWRNYWlsKSB7XHJcbiAgICAgICAgY29uc29sZS5sb2coaXNJblZhbGlkTWFpbCk7XHJcbiAgICAgICAgcmV0dXJuIGlzSW5WYWxpZE1haWw7XHJcbiAgICAgIH1cclxuICAgIH1cclxuICB9XHJcblxyXG4gIC8vIGlmIHRoZXJlIGlzIHJlcGVhdCBwYXNzd29yZCBmaWVsZCA9PiBjaGVjayBpZiBtYXRjaFxyXG4gIGlmICh2YWx1ZXMgJiYgdmFsdWVzLmxlbmd0aCA9PT0gMiAmJiBpbnB1dHMgJiYgaW5wdXRzLmxlbmd0aCA9PT0gMikge1xyXG4gICAgaWYgKFxyXG4gICAgICB2YWx1ZXNbMV0gJiZcclxuICAgICAgdmFsdWVzWzBdICYmXHJcbiAgICAgIHZhbHVlc1sxXS52YWwgIT09IFwiXCIgJiZcclxuICAgICAgdmFsdWVzWzFdLnZhbCAhPT0gdmFsdWVzWzBdLnZhbFxyXG4gICAgKSB7XHJcbiAgICAgIHJldHVybiBtaXNtYXRjaCB8fCBcIk1pc21hdGNoXCI7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICByZXR1cm4gZmFsc2U7XHJcbn07XHJcblxyXG5jb25zdCBwYXNzd29yZFZhbGlkYXRpb24gPSAodmFsdWVzLCBmaWVsZCkgPT4ge1xyXG4gIGNvbnN0IHsgaW5wdXRzLCBpc1JlcXVpcmVkOiByZXF1aXJlZCwgZXJyb3JNZXNzYWdlIH0gPSBmaWVsZCB8fCBmYWxzZTtcclxuICBjb25zdCB7IHJlcXVpcmVkOiByZXF1aXJlZE1zZywgbWlzbWF0Y2ggfSA9IGVycm9yTWVzc2FnZSB8fCBmYWxzZTtcclxuXHJcbiAgY29uc3QgZmlsdGVyZWRJbnB1dHMgPSBpbnB1dHMuZmlsdGVyKChpdGVtKSA9PiAhaXRlbS5pc0hpZGRlbik7XHJcblxyXG4gIC8vIGNoZWNrIGlmIGZpZWxkcyBpcyByZXF1aXJlZCBhbmQgaXNuJ3QgZW1wdHlcclxuICBjb25zdCBpc0lucHV0c0VtcHR5ID1cclxuICAgIHZhbHVlcyAmJiB2YWx1ZXMuZmlsdGVyKChpdGVtKSA9PiBpdGVtICYmIGl0ZW0udmFsID09PSBcIlwiKS5sZW5ndGg7XHJcblxyXG4gIGlmIChcclxuICAgICgodmFsdWVzICYmIHZhbHVlcy5sZW5ndGggPT09IDApIHx8XHJcbiAgICAgIGlzSW5wdXRzRW1wdHkgPT09IGZpbHRlcmVkSW5wdXRzLmxlbmd0aCkgJiZcclxuICAgIHJlcXVpcmVkXHJcbiAgKSB7XHJcbiAgICByZXR1cm4gcmVxdWlyZWRNc2cgfHwgXCJUaGlzIGZpZWxkIGlzIHJlcXVpcmVkXCI7XHJcbiAgfVxyXG5cclxuICAvLyBpZiB0aGVyZSBpcyByZXBlYXQgcGFzc3dvcmQgZmllbGQgPT4gY2hlY2sgaWYgbWF0Y2hcclxuICBpZiAoXHJcbiAgICB2YWx1ZXMgJiZcclxuICAgIHZhbHVlcy5sZW5ndGggPT09IDIgJiZcclxuICAgIGZpbHRlcmVkSW5wdXRzICYmXHJcbiAgICBmaWx0ZXJlZElucHV0cy5sZW5ndGggPT09IDJcclxuICApIHtcclxuICAgIGlmIChcclxuICAgICAgdmFsdWVzWzFdICYmXHJcbiAgICAgIHZhbHVlc1swXSAmJlxyXG4gICAgICB2YWx1ZXNbMV0udmFsICE9PSBcIlwiICYmXHJcbiAgICAgIHZhbHVlc1sxXS52YWwgIT09IHZhbHVlc1swXS52YWxcclxuICAgICkge1xyXG4gICAgICByZXR1cm4gbWlzbWF0Y2ggfHwgXCJNaXNtYXRjaFwiO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgcmV0dXJuIGZhbHNlO1xyXG59O1xyXG5cclxuY29uc3QgdmFsaWRhdGVEYXRlVHlwZURyb3dkb3duID0gKHZhbHVlcywgcmVxdWlyZWQsIHJlcXVpcmVkTXNnKSA9PiB7XHJcbiAgaWYgKCFyZXF1aXJlZCB8fCAhdmFsdWVzKSByZXR1cm4gZmFsc2U7XHJcblxyXG4gIGNvbnN0IGtleXMgPSBPYmplY3Qua2V5cyh2YWx1ZXMpO1xyXG4gIGxldCBpc1ZhbGlkID0gdHJ1ZTtcclxuICBpZiAoa2V5cyAmJiBrZXlzLmxlbmd0aCA9PT0gMykge1xyXG4gICAgZm9yIChsZXQgaSA9IDA7IGkgPCBrZXlzLmxlbmd0aDsgaSsrKSB7XHJcbiAgICAgIGNvbnN0IHsgdmFsIH0gPSB2YWx1ZXNbaV07XHJcbiAgICAgIGlmICh2YWwgPT09IFwiXCIpIHtcclxuICAgICAgICBpc1ZhbGlkID0gZmFsc2U7XHJcbiAgICAgICAgYnJlYWs7XHJcbiAgICAgIH1cclxuICAgIH1cclxuICB9XHJcbiAgcmV0dXJuICFpc1ZhbGlkID8gcmVxdWlyZWRNc2cgfHwgXCJUaGlzIGZpZWxkIGlzIHJlcXVpcmVkXCIgOiBmYWxzZTtcclxufTtcclxuXHJcbmNvbnN0IGlzRGF0ZSA9ICh2YWx1ZXMsIGZpZWxkKSA9PiB7XHJcbiAgY29uc3QgdmFsaWRhdGlvbiA9IFtdO1xyXG5cclxuICBpZiAoZmllbGQuZGF0ZVR5cGUgPT09IFwiZGF0ZWRyb3Bkb3duXCIpIHtcclxuICAgIHJldHVybiB2YWxpZGF0ZURhdGVUeXBlRHJvd2Rvd24oXHJcbiAgICAgIHZhbHVlcyxcclxuICAgICAgZmllbGQuaXNSZXF1aXJlZCxcclxuICAgICAgZmllbGQuZXJyb3JNZXNzYWdlXHJcbiAgICApO1xyXG4gIH1cclxuXHJcbiAgZm9yIChsZXQgaSA9IDA7IGkgPCB2YWx1ZXMubGVuZ3RoOyBpKyspIHtcclxuICAgIGlmICh2YWx1ZXNbaV0pIHtcclxuICAgICAgY29uc3QgeyB2YWwsIGxhYmVsIH0gPSB2YWx1ZXNbaV07XHJcbiAgICAgIGlmICh2YWwpIHtcclxuICAgICAgICBpZiAobGFiZWwgPT09IFwiTU1cIikge1xyXG4gICAgICAgICAgY29uc3QgbWF4ID0gMTI7XHJcbiAgICAgICAgICBjb25zdCBtaW4gPSAxO1xyXG4gICAgICAgICAgY29uc3QgbWF4TGVuZ3RoID0gMjtcclxuICAgICAgICAgIGlmICh2YWwubGVuZ3RoID4gbWF4TGVuZ3RoIHx8IHZhbCA8IG1pbiB8fCB2YWwgPiBtYXgpIHtcclxuICAgICAgICAgICAgdmFsaWRhdGlvbltpXSA9IHtcclxuICAgICAgICAgICAgICBpbmRleDogaSxcclxuICAgICAgICAgICAgICBtZXNzYWdlOiBcIkVudGVyIGEgdmFsaWQgbW9udGhcIixcclxuICAgICAgICAgICAgfTtcclxuICAgICAgICAgIH1cclxuICAgICAgICB9IGVsc2UgaWYgKGxhYmVsID09PSBcIkREXCIpIHtcclxuICAgICAgICAgIGNvbnN0IG1heCA9IDMxO1xyXG4gICAgICAgICAgY29uc3QgbWluID0gMTtcclxuICAgICAgICAgIGNvbnN0IG1heExlbmd0aCA9IDI7XHJcbiAgICAgICAgICBpZiAodmFsLmxlbmd0aCA+IG1heExlbmd0aCB8fCB2YWwgPCBtaW4gfHwgdmFsID4gbWF4KSB7XHJcbiAgICAgICAgICAgIHZhbGlkYXRpb25baV0gPSB7XHJcbiAgICAgICAgICAgICAgaW5kZXg6IGksXHJcbiAgICAgICAgICAgICAgbWVzc2FnZTogXCJFbnRlciBhIHZhbGlkIGRhdGVcIixcclxuICAgICAgICAgICAgfTtcclxuICAgICAgICAgIH1cclxuICAgICAgICB9IGVsc2UgaWYgKGxhYmVsID09PSBcIllZWVlcIikge1xyXG4gICAgICAgICAgY29uc3QgbWF4ID0gbmV3IERhdGUoKS5nZXRGdWxsWWVhcigpICsgMTtcclxuICAgICAgICAgIGNvbnN0IG1pbiA9IDE5MjA7XHJcbiAgICAgICAgICBjb25zdCBtYXhMZW5ndGggPSA0O1xyXG4gICAgICAgICAgaWYgKHZhbC5sZW5ndGggPiBtYXhMZW5ndGggfHwgdmFsIDwgbWluIHx8IHZhbCA+IG1heCkge1xyXG4gICAgICAgICAgICB2YWxpZGF0aW9uW2ldID0ge1xyXG4gICAgICAgICAgICAgIGluZGV4OiBpLFxyXG4gICAgICAgICAgICAgIG1lc3NhZ2U6IFwiRW50ZXIgYSB2YWxpZCB5ZWFyXCIsXHJcbiAgICAgICAgICAgIH07XHJcbiAgICAgICAgICB9XHJcbiAgICAgICAgfVxyXG4gICAgICB9XHJcbiAgICB9XHJcbiAgfVxyXG4gIHJldHVybiB2YWxpZGF0aW9uO1xyXG59O1xyXG5cclxuY29uc3QgdmFsaWRhdGVGaWVsZCA9ICh2YWx1ZSwgZmllbGQpID0+IHtcclxuICBjb25zdCB7IHR5cGUsIGlzUmVxdWlyZWQ6IHJlcXVpcmVkIH0gPSBmaWVsZDtcclxuICAvLyBDaGVjayBmaXJzdCBpZiByZXF1cmllZCBjaGVja2JveCBvciByYWRpb1xyXG4gIGlmICgodHlwZSA9PT0gXCJjaGVja2JveFwiIHx8IHR5cGUgPT09IFwicmFkaW9cIikgJiYgcmVxdWlyZWQpIHtcclxuICAgIHJldHVybiBjaGVja2JveFZhbGlkYXRpb24odmFsdWUsIGZpZWxkLmVycm9yTWVzc2FnZSk7XHJcbiAgfVxyXG5cclxuICBpZiAodHlwZSA9PT0gXCJwYXNzd29yZFwiKSB7XHJcbiAgICByZXR1cm4gcGFzc3dvcmRWYWxpZGF0aW9uKHZhbHVlLCBmaWVsZCk7XHJcbiAgfVxyXG5cclxuICBpZiAodHlwZSA9PT0gXCJlbWFpbFwiICYmIGZpZWxkLmVtYWlsQ29uZmlybUVuYWJsZWQpIHtcclxuICAgIHJldHVybiBlbWFpbFZhbGlkYXRpb24odmFsdWUsIGZpZWxkKTtcclxuICB9XHJcblxyXG4gIC8vIENoZWNrIGlmIGVtcHR5XHJcbiAgY29uc3QgZW1wdHkgPSBpc0VtcHR5KHZhbHVlKTtcclxuICBsZXQgdmFsaWRhdGlvbk1lc3NhZ2UgPSBcIlwiO1xyXG4gIGNvbnN0IG1lc3NhZ2UgPSBmaWVsZCAmJiBmaWVsZC5lcnJvck1lc3NhZ2UgPyBmaWVsZC5lcnJvck1lc3NhZ2UgOiBmYWxzZTtcclxuICAvLyBTZXQgdmFsaWRhdGlvbiBtZXNzYWdlIGlmIHJlcXVpcmVkXHJcbiAgdmFsaWRhdGlvbk1lc3NhZ2UgPSByZXF1aXJlZCA/IGlzUmVxdWlyZWQocmVxdWlyZWQsIGVtcHR5LCBtZXNzYWdlKSA6IGZhbHNlO1xyXG4gIC8vIFNldCBvdGhlciB2YWxpZGF0aW9uIG1lc3NhZ2VzXHJcbiAgaWYgKCF2YWxpZGF0aW9uTWVzc2FnZSAmJiAhZW1wdHkpIHtcclxuICAgIGlmICh0eXBlID09PSBcImVtYWlsXCIpIHtcclxuICAgICAgdmFsaWRhdGlvbk1lc3NhZ2UgPSBpc0VtYWlsKHZhbHVlLCBtZXNzYWdlKTtcclxuICAgIH0gZWxzZSBpZiAodHlwZSA9PT0gXCJ3ZWJzaXRlXCIpIHtcclxuICAgICAgdmFsaWRhdGlvbk1lc3NhZ2UgPSBpc1VybCh2YWx1ZSwgbWVzc2FnZSk7XHJcbiAgICB9IGVsc2UgaWYgKHR5cGUgPT09IFwiZGF0ZVwiKSB7XHJcbiAgICAgIGxldCBpc1ZhbGlkID0gdHJ1ZTtcclxuICAgICAgaWYgKGZpZWxkLmRhdGVUeXBlICYmIGZpZWxkLmRhdGVUeXBlID09PSBcImRhdGVwaWNrZXJcIikge1xyXG4gICAgICAgIGlzVmFsaWQgPSByZXF1aXJlZCA/IGlzUmVxdWlyZWQocmVxdWlyZWQsIGVtcHR5LCBtZXNzYWdlKSA6IGZhbHNlO1xyXG4gICAgICB9IGVsc2Uge1xyXG4gICAgICAgIGlzVmFsaWQgPSBpc0RhdGUodmFsdWUsIGZpZWxkKTtcclxuICAgICAgfVxyXG4gICAgICB2YWxpZGF0aW9uTWVzc2FnZSA9IGlzVmFsaWQubGVuZ3RoID4gMCA/IGlzVmFsaWQgOiBmYWxzZTtcclxuICAgIH1cclxuICB9XHJcbiAgcmV0dXJuIHZhbGlkYXRpb25NZXNzYWdlO1xyXG59O1xyXG5cclxuZXhwb3J0IHtcclxuICBpc0VtcHR5LFxyXG4gIHNlbGVjdFZhbGlkYXRpb24sXHJcbiAgY2hlY2tib3hWYWxpZGF0aW9uLFxyXG4gIGlzVXJsLFxyXG4gIGlzRW1haWwsXHJcbiAgaXNSZXF1aXJlZCxcclxuICB2YWxpZGF0ZUZpZWxkLFxyXG59O1xyXG4iXX0=